“<:”是什么意思在Scala?
发布时间:2020-12-16 09:41:43 所属栏目:安全 来源:网络整理
导读:我正在看p。第469页“编程在Scala”第二版。有一行代码如下: type Currency : AbstractCurrency 我不能破译这是什么意思。 解决方法 这意味着定义了抽象类型成员(在一些上下文中,例如trait或类),以便该上下文的具体实现必须定义该类型。但是,这种类型(货
我正在看p。第469页“编程在Scala”第二版。有一行代码如下:
type Currency <: AbstractCurrency 我不能破译这是什么意思。 解决方法
这意味着定义了抽象类型成员(在一些上下文中,例如trait或类),以便该上下文的具体实现必须定义该类型。但是,这种类型(货币)必须实际上是AbstractCurrency的子类型。这样,抽象上下文可以与Currency操作,知道它可以理解AbstractCurrency的每个操作。
trait AbstractCurrency { def disappearInGreece(): Unit } abstract class Economy { type Currency <: AbstractCurrency def curr: Currency // can call disappear... because `Currency` // is an `AbstractCurrency` def shake(): Unit = curr.disappearInGreece() } 试图定义货币没有约束: trait RadioactiveBeef class NiceTry(val curr: RadioactiveBeef) extends Economy { type Currency = RadioactiveBeef } 失败。有约束可以: trait Euro extends AbstractCurrency class Angela(val curr: Euro) extends Economy { type Currency = Euro } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |