首页 文章

为什么在Kotlin中没有val / var修饰符的主构造函数中需要一个参数?

提问于
浏览
1

如果我创建一个类,我可以传递一个参数:

class Person(name: String) {
}

我也可以写相同的,但是使用val然后我将能够使用属性来获取此值,当我创建一个对象时 .

val person = Person("Name")
person.name

问题是:为什么我只需要一个没有val的参数?我应该在哪里,如何以及为什么使用它?

2 回答

  • 3

    如果在构造函数中使用 varval ,则表示属性并直接初始化它们 . 如果不这样做,那些参数将用于初始化目的:

    class Customer(name: String) {
        val customerKey = name.toUpperCase()
    }
    
  • 5

    https://kotlinlang.org/docs/reference/classes.html

    当您不希望构造函数参数成为类的命名属性时使用它 .

    如果使用 val ,则会获得只读属性 . 如果您使用 var ,则会获得可变属性 . 否则,你什么也得不到[自动定义] .

相关问题