【问题标题】:What is the difference if I remove the 'var' keyword in a class?如果我删除类中的 'var' 关键字有什么区别?
【发布时间】:2017-09-05 19:00:47
【问题描述】:

你能告诉我代码 A 和代码 B 的区别是什么吗?

代码 A

class Person(firstName: String) {
}

代码 B

class Person(val firstName: String) {
}

【问题讨论】:

标签: kotlin


【解决方案1】:

第一个就像为构造函数设置一个参数以设置为类成员。

second您已经创建了一个成员变量 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) {

}

输出 堆栈溢出

好吧,让我们试试第一个代码

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

class Person( firstName: String) {

}

输出 编译错误

未解决的参考:名字

【讨论】:

    猜你喜欢
    • 2011-07-19
    • 2011-09-30
    • 2019-09-21
    • 2018-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    相关资源
    最近更新 更多