【发布时间】:2021-09-30 01:08:35
【问题描述】:
在https://docs.scala-lang.org/tour/classes.html 的 Scala 文档中,以下示例显示了包含参数的最小类定义:
class Point(var x: Int, var y: Int) {
...
}
以下代码 sn-ps 对我来说都可以正常工作:
- 片段 1:
class Train(number: Int) - 片段 2:
class Train(val number: Int)
在 sn-p 2 中使用val 有什么好处?据我了解,默认情况下 val 是隐式的。明确地说number 是val 而不是var 是唯一的好处吗?谢谢。
【问题讨论】:
-
在第二个 sn-p
number是类Train的公共成员 - 在第一个 sn-pnumber只能在Train的主体中访问,因为它只是构造函数的一个参数。 -
谢谢@LuisMiguelMejíaSuárez。请写下这个作为答案。
-
来自文档链接:“带有 val 和 var 的主构造函数参数是公开的。”大约 6 行以下:“没有 val 或 var 的参数是私有值,仅在类中可见。”
标签: scala