提供scala特征的构造函数

时间:2016-04-29 23:02:30

标签: scala constructor traits

SIP 25将允许特征具有构造函数。在实施之前,什么是一个好的解决方法?

1 个答案:

答案 0 :(得分:7)

我认为唯一的解决方法是在特征中定义一些类似于构造函数params的抽象方法,并在具体实现中覆盖它们:

trait A {
  def message:String
}

val a = new A {
  override val message = "Hello!"
}

在scala中,类/特征的整个主体是构造函数。所以基本上你使用相同的方法:

class B (override val message:String) extends A

val b = new B("Hello!")