如何在 Scala 中设置多个类型边界?

Posted

技术标签:

【中文标题】如何在 Scala 中设置多个类型边界?【英文标题】:How do I setup multiple type bounds in Scala? 【发布时间】:2009-09-29 08:34:10 【问题描述】:

我希望能够像这样声明:

trait Narrowable[A] extends Iterable[A] 

    def narrow[B <: A & B <: AnyRef] : Iterable[B]


也就是说,B 类型应该是A 的子类型 AnyRef。这可能吗?

【问题讨论】:

【参考方案1】:

使用复合类型:

trait Narrowable[A] extends Iterable[A] 
  def narrow[B <: A with AnyRef] : Iterable[B]

【讨论】:

同样的交易,挖金子,多年后发现 Walter Chang 富有洞察力的回复;-) @Walter Chang 或/两个上限中的任何一个 def narrow[B &lt;: A | B &lt;: AnyRef] : Iterable[B] @PushpendraJaiswal 你最好的选择可能是简单地使用Either[A, AnyRef] 而不是输入边界。 如果你需要一个上限和一个上下文边界怎么办?

以上是关于如何在 Scala 中设置多个类型边界?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flutter 中设置按钮飞溅效果的边界?

Scala中的多个较低类型边界

请教如何在Report Builder 中设置多个参数

如何在协议扩展中设置委托

Scala,docker - 如何使用 sbt-native-packager 在多模块应用程序中设置 mainClass?

如何在 Asyncstorage 中设置多个值