class Greeter(name: String) {
fun greet() {
println("Hello, $name")
}
}
fun main(args: Array<String>) {
Greeter(args[0]).greet()
}
对于上面的程序,我得到了以下错误。
Unresolved reference: name
但是当我添加 var 或者 val
class Greeter(var name: String) {
或者
class Greeter(val name: String) {
这个程序本来就可以正常工作,那么为什么我需要在名称前添加var或val?构造函数参数的默认类型是什么,为什么当我没有提到var或val时程序会报错?
val
或var
,那么该参数也成为了一个属性。如果没有这两个关键字,那么该参数只是一个参数,在初始化期间才可以访问。详情请参见 https://kotlinlang.org/docs/reference/classes.html#constructors。 - Slaw