如果我删除类中的“var”关键字有什么区别?
你能告诉我代码A和代码B的区别是什么?
代码A
class Person(firstName: String) { }
代码B
class Person(val firstName: String) { }
第一个就像给你的构造函数设置一个参数来设置类成员的参数一样。
其次,您已经创建了一个成员变量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) { }
OUTPUT Stackoverflow
okey让我们尝试第一个代码
fun main(args: Array<String>) { var person = Person("mohamed") println(person.firstName) } class Person( firstName: String) { }
OUTPUT编译器错误
未解决的参考:名字