我有时会看到类似下面的东西.
class Test(val str: String){
}
Run Code Online (Sandbox Code Playgroud)
我写了一些示例代码,val但我没有看到常见声明和方式之间有任何区别val.
他们之间有什么区别?什么时候应该使用?
如果添加val,您的变量将在课外显示.
// 'name' is a val
class Person(val name: String)
val p = new Person("Alvin Alexander")
p.name // String = Alvin Alexander
p.name = "Fred Flintstone" // error: reassignment to val
// 'name' is neither var or val
class Person(name: String)
val p = new Person("Alvin Alexander")
p.name // error: value name is not a member of Person
Run Code Online (Sandbox Code Playgroud)
代码来自http://alvinalexander.com/scala/scala-class-examples-constructors-case-classes-parameters
更多信息scala类构造函数参数