使用 Kotlin 主构造函数时 val / var 的含义

时间:2021-04-11 12:28:49

标签: kotlin

我见过 Kotlin 示例使用这样的主构造函数:

class Person(firstName: String, lastName: String) {}

而且我已经看到了带有 var 或 val 关键字的示例,如下所示:

class Person(val firstName: String, val lastName: String) {}

有什么区别?我什么时候必须使用哪种变体?

1 个答案:

答案 0 :(得分:3)

关于 documentation,在构造函数中使用 varval 在类中创建 property。如果不写,那么传递给构造函数的只是一个parameter。举个例子:

class Person(val firstName: String, lastName: String) {
    
    // firstName and lastName accessible
  
    fun getFirstName() = firstName // firstName accessible

    fun getLastName() = lastName // lastName not accessible
}

所以如果你想继续使用 firstNamelastName,我会用它来做一个属性。