【发布时间】:2018-03-20 10:52:22
【问题描述】:
我试图理解当我创建扩展一个我认为扩展 Function0 [() => Unit] 的 Trait 的类时,为什么该类的对象的实例化是 Function0 类型?在对象实例化期间,apply 方法是否作为构造函数调用?我无法完全理解以下代码的机制。
scala> trait Base extends (() => Unit) {
|
| def label: String
| }
defined trait Base
scala> class Extend extends Base{
| override def label = "Hello label"
| override def apply()= println ("This is apply")
|
| }
defined class Extend
scala> val m = new Extend
m: Extend = <function0>
scala> m()
This is apply
【问题讨论】:
标签: scala