如果删除类中的'var'关键字有什么区别?

时间:2017-08-31 01:44:20

标签: kotlin

您能否告诉我代码A和代码B之间的区别是什么?

代码A

class Person(firstName: String) {
}

代码B

class Person(val firstName: String) {
}

1 个答案:

答案 0 :(得分:4)

首先一个就像为你的构造函数设置一个参数设置为类成员一样。

第二次您已经创建了一个成员变量firstName,并将传入的数据传递给它。

第二个代码等于:

class Person(firstName: String) {
    val firstName:String?
    init{
       this.firstName = firstName
    }
}

要清楚,让我们试试这段代码

fun main(args: Array<String>) {
    var person = Person("Stackoverflow")
    println(person.firstName)
}

class Person(val firstName: String) {

}

<强>输出 Stackoverflow

okey让我们尝试第一个代码

fun main(args: Array<String>) {
    var person = Person("mohamed")
    println(person.firstName)
}

class Person( firstName: String) {

}

<强>输出 编译器错误

  

未解析的引用:firstName