Scala:将泛型类型参数约束为另一个参数中的类型

发布于 2024-12-07 05:40:12 字数 315 浏览 1 评论 0原文

我仍在努力掌握 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

愁杀 2024-12-14 05:40:12

您需要 类型投影

def m[T <: T1, MAP <: MyMap[T#SomeType, Int]]

You need type projection:

def m[T <: T1, MAP <: MyMap[T#SomeType, Int]]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文