首页 > 解决方案 > 使用 Kotlin Primary 构造函数时 val / var 的含义

问题描述

我已经看到使用这样的 Primary-constructor 的 Kotlin 示例:

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

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

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

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

标签: kotlin

解决方案


关于文档,使用构造函数varval在构造函数中创建类中的属性。如果不写,那么它只是传递给构造函数的一个参数。举个例子:

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

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

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


推荐阅读