标签: universal-trait

价值观,普遍特征和实例化的必要性

值类规范中,它说:

值类只能扩展通用特征,不能自己扩展.一个普遍的特点是延伸的特质Any,只有defS作为成员,并不做任何初始化.通用特征允许值类的方法的基本继承,但它们会产生分配的开销.例如

trait Printable extends Any {
  def print(): Unit = println(this)
}
class Wrapper(val underlying: Int) extends AnyVal with Printable

val w = new Wrapper(3)
w.print() // actually requires instantiating a Wrapper instance
Run Code Online (Sandbox Code Playgroud)

第一个问题

现在,我想借此意味着以下的(可能)要求实例:

trait Marker extends Any
class Wrapper(val underlying: Int) extends AnyVal with Marker {
  def print(): Unit = println(this) //unrelated to Marker
}

val w = new …
Run Code Online (Sandbox Code Playgroud)

scala value-class universal-trait

6
推荐指数
1
解决办法
185
查看次数

标签 统计

scala ×1

universal-trait ×1

value-class ×1