【问题标题】:Scala Generics from C# Perspective -- Higher Kinded Type?从 C# 角度看的 Scala 泛型——更高种类的类型?
【发布时间】:2013-09-28 00:22:19
【问题描述】:

愚蠢的问题...

我正在使用 C# 泛型编写一些东西,并且觉得我发现了一个缺点,并且它可能会在 Scala 中使用更高种类的类型来克服,我只是模糊地熟悉。

代码如下:

public void Subscribe<P, T>(Action<T> callback) where P : ISubscriberProvider<T>

(Provider 可能是个不好的词……我想它可能真的是一个工厂)

所以问题是我必须在签名中同时提供 P 和 T。相反,我想要类似的东西:

public void Subscribe<P<T>>(Action<T> callback) where P : ISubscriberProvider<T>

这不是有效的语法。

这对 Scala 是否有效?

非常感谢!

【问题讨论】:

  • 我不知道你想做什么。告诉我们你在哪里调用这个方法。此外,您可能希望查看Future 对象或Akka actors,而不是传递回调
  • 检查这个线程 - stackoverflow.com/questions/3709298/removing-code-duplication。它可能会帮助您了解更高的种类基本上是关于什么的。

标签: scala


【解决方案1】:

我不懂 C#,但看起来像

def subscribe[T, P <: SubscriberProvider[T]](fun: T => Unit): Unit

但是P 类型并没有在参数或返回类型中的任何地方使用,所以不确定你可以使用它。

【讨论】:

    猜你喜欢
    • 2012-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-12
    • 2018-12-09
    相关资源
    最近更新 更多