1
为什么我不能在类的主体中定义构造函数arg myval?例如特质是无法看到的构造ARG如下所示:Scala:为什么自我类型特征不能看到构造函数参数
scala> class A(myval: String){}
scala> trait B {
| this: A =>
| println(myval)
| }
<console>:8: error: not found: type A
this: A =>
^
<console>:9: error: not found: value myval
println(myval)
^
我不得不在类的身体再次声明构造ARG。
scala> class A(_myval: String){ val myval = _myval}
defined class A
scala> trait B {
| this: A =>
| println(myval)
| }
defined trait B
有人可以帮我理解这是为什么吗?
谢谢 - 这是我现在所做的。但是我在身体中定义的任何val都可用。 – JasonG
您甚至可以通过将'A'定义为'class A(val myval:String);' –
@JasonG yes来更简洁地做到这一点,因为Scala中的默认可见性是'public'。 @Rob好的提示不知道。 – Esardes