如何在 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 <: A | B <: AnyRef] : Iterable[B]
@PushpendraJaiswal 你最好的选择可能是简单地使用Either[A, AnyRef]
而不是输入边界。
如果你需要一个上限和一个上下文边界怎么办?以上是关于如何在 Scala 中设置多个类型边界?的主要内容,如果未能解决你的问题,请参考以下文章
Scala,docker - 如何使用 sbt-native-packager 在多模块应用程序中设置 mainClass?