如果我创建一个类,我可以传递一个参数:
class Person(name: String) {
}
我也可以编写相同的内容,但是使用val,然后当我创建一个对象时,我将能够使用属性来获取此值。
val person = Person("Name")
person.name
问题是:为什么我只需要一个没有val的参数?我应该在哪里,如何以及为什么使用它?
答案 0 :(得分:5)
如果在构造函数中使用var
或val
,则表示属性并直接初始化它们。如果不这样做,那些参数将用于初始化目的:
class Customer(name: String) {
val customerKey = name.toUpperCase()
}
答案 1 :(得分:3)
https://kotlinlang.org/docs/reference/classes.html
在您不希望构造函数参数成为类的命名属性时使用它。
如果您使用val
,则会获得只读属性。如果您使用var
,则会获得可变属性。否则,你什么也得不到[自动定义]。