从C#角度看Scala泛型——更高级的类型?
愚蠢的问题 我正在用C#泛型写一些东西,感觉好像我发现了一个短消息,在Scala中使用更高级的类型可能会克服它,我只是对它略为熟悉 代码如下:从C#角度看Scala泛型——更高级的类型?,scala,Scala,愚蠢的问题 我正在用C#泛型写一些东西,感觉好像我发现了一个短消息,在Scala中使用更高级的类型可能会克服它,我只是对它略为熟悉 代码如下: public void Subscribe<P, T>(Action<T> callback) where P : ISubscriberProvider<T> public void Subscribe(操作回调),其中P:ISubscriberProvider (提供商可能是一个不好的术语……我认为它可能真的是
public void Subscribe<P, T>(Action<T> callback) where P : ISubscriberProvider<T>
public void Subscribe(操作回调),其中P:ISubscriberProvider
(提供商可能是一个不好的术语……我认为它可能真的是一个工厂)
所以问题是我必须在签名中同时提供p和T。相反,我想要的是:
public void Subscribe<P<T>>(Action<T> callback) where P : ISubscriberProvider<T>
public void Subscribe(操作回调),其中P:ISubscriberProvider
这不是有效的语法
这能在Scala中生效吗
多谢 我不知道C,但看起来像
def subscribe[T, P <: SubscriberProvider[T]](fun: T => Unit): Unit
def订阅[T,P单位):单位
但是类型p
在参数或返回类型中的任何地方都没有使用,所以不确定您可以使用它。我不知道C,但它看起来像
def subscribe[T, P <: SubscriberProvider[T]](fun: T => Unit): Unit
def订阅[T,P单位):单位
但是类型
p
没有在参数或返回类型中的任何地方使用,因此不确定您可以使用它。我不知道您试图做什么。告诉我们您在哪里调用此方法。另外,您可能希望查看未来的对象,或者Akka actors
检查此t线程-。它可能会帮助您了解更高种类的基本内容。我不知道您在尝试做什么。告诉我们您在哪里调用此方法。此外,您可能希望查看未来的对象,或者Akka actors
检查此线程-,而不是传递回调。它可能会帮助您了解更高种类的对象基本上是关于。