我是Scala的新手,来自Java,我只是在阅读有关特征的内容.经常提到的一件事是特征不会(不能?不会?)具有构造函数参数.我很想知道这是否有原因.
来自很久以前的数学/计算机科学背景,我想知道这是否是一个不可避免的后果,因为一些语言设计决定,或者是否有意识地决定避免一些继承/混合问题或其他?
希望有人知道,因为事实背后可能会有一些有趣的东西.
Scala 3 将允许特征参数。这是文档中的示例
trait Greeting(val name: String) {
def msg = s"How are you, $name"
}
class C extends Greeting("Bob") {
println(msg)
}
Run Code Online (Sandbox Code Playgroud)