Scala:将泛型类型参数约束为另一个参数中的类型
我仍在努力掌握 Scala 语言,所以请耐心等待我和我所有的问题。
我可以从一个类型参数的绑定中引用另一个类型参数吗?例如,有没有一种方法可以使以下代码工作?我在这里想要实现的本质是,C 的 MAP 参数的 KEY 应该是参数 T 的 SomeType。
trait T1 {
type SomeType;
}
trait MyMap[KEY, VALUE] { ... }
class C {
def m[T <: T1, MAP <: MyMap[T.SomeType, Int]] { ... }
}
I'm still trying to grasp the Scala language, so please bear with me and all my questions.
Can I reference an abstract type from one type parameter in the bound for another? For instance, is there a way in which the following code can be made to work? The essence of what I'm trying to achieve here is that the KEY for the MAP parameter of C should be the SomeType of the parameter T.
trait T1 {
type SomeType;
}
trait MyMap[KEY, VALUE] { ... }
class C {
def m[T <: T1, MAP <: MyMap[T.SomeType, Int]] { ... }
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要 类型投影:
You need type projection: