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