Scala中类参数的val是什么?

sui*_*ish 1 scala

我有时会看到类似下面的东西.

class Test(val str: String){
}
Run Code Online (Sandbox Code Playgroud)

我写了一些示例代码,val但我没有看到常见声明和方式之间有任何区别val.

他们之间有什么区别?什么时候应该使用?

pt2*_*121 6

如果添加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类构造函数参数