如何在Kotlin中的构造函数块之外访问辅助构造函数参数

fri*_*rie 7 constructor kotlin

我是Kotlin的新手,正在研究可用的教程。但是现在我似乎对次要构造函数有问题:可以在函数中访问在主要构造函数中声明的参数,但是当我尝试使用次要构造函数中的参数执行此操作时,出现错误:无法解析的引用:nbr

代码:

class Test(_name: String) {
val name: String = _name

constructor(_name: String, _nbr: Int) : this(_name) {
    val nbr: Int = _nbr
}

fun printNameAndNumber() {  
    println("Name: $name")
    println("Number: $nbr")
}
Run Code Online (Sandbox Code Playgroud)

}

对我来说很明显,我做的事情基本上是错误的,但是谁能告诉我呢?

gil*_*des 7

nbr 应该是一个变量,因为在这种特定情况下,它是可选的:

class Test(_name: String) {
    val name: String = _name
    var nbr: Int? = null

    constructor(_name: String, _nbr: Int) : this(_name) {
        this.nbr = _nbr
    }

    fun printNameAndNumber() {
        println("Name: $name")
        println("Number: $nbr")
    }
}
Run Code Online (Sandbox Code Playgroud)