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