0

与えられた:

trait Foo {
  var foo: Int
}

abstract class Bar(foo: Int) extends Foo

trait Baz {
  self: Bar =>
  foo = 4
}

次のエラーが表示されます。

value foo in class Bar cannot be accessed in Baz with Bar
  foo = 4
  ^

ただし、 Bar を次のように変更すると:

abstract class Bar(_foo: Int) extends Foo {
  foo = _foo
}

それは正常に動作します。コンストラクターから継承されたフィールドを割り当てる方法はありませんか? それはほとんど影を落としているように見えます。

4

1 に答える 1