0

我正在研究 Scala 特征,但尚未对其进行编程,因此这是一个假设性问题。

到目前为止,我看到的所有示例都有具体或抽象字段,它们仅val在其声明中使用,而不是var. var可以在 Scala 特征中使用声明的字段吗?

TIA,马修

4

1 回答 1

3

如果你尝试一下,你会发现它有效:

scala> trait TestTrait {
     | var x = 1
     | }
defined trait TestTrait

scala> val t = new TestTrait { }
t: TestTrait = $anon$1@4c32060c

scala> t.x = 2
t.x: Int = 2

scala> t.x
res0: Int = 2

如果您阅读了 Scala 中的编译方式varval编译方式,这是有道理的。Aval是一个带有自动生成的getter方法的私有字段,唯一的区别var是它也有一个 setter。

于 2013-08-30T19:12:22.607 回答