如果 val 变量是不可变的,我怎么能改变它的值呢?
If val variables are immutable how I was able to change its value?
class Mobile(val company: String= "unknown", var model: String ="unknown") {
fun call(mobile: Mobile) = "Calling with ${mobile.model} from the company ${mobile.company}"
}
fun main()
{
val mobile = Mobile("Samsung", "S10")
}
在前面的代码中:kotlin 编译器如何能够更改变量公司,尽管它被声明为 'val'?
Mobile class 中传递的那些值只是默认值,作为您的 Mobile class 构造函数声明的一部分,如果您在实例化时不提供任何值,将使用这些值class。但是因为在你的 main 中你正在实例化 class with company="Samsung" 和 model="S10" 这些值被用来代替默认值。
请记住 class Mobile(val company: String= "unknown", var model: String ="unknown")
只是一个声明,因此 company
和 model
在您调用构造函数之前不会真正初始化
class Mobile(val company: String= "unknown", var model: String ="unknown") {
fun call(mobile: Mobile) = "Calling with ${mobile.model} from the company ${mobile.company}"
}
fun main()
{
val mobile = Mobile("Samsung", "S10")
}
在前面的代码中:kotlin 编译器如何能够更改变量公司,尽管它被声明为 'val'?
Mobile class 中传递的那些值只是默认值,作为您的 Mobile class 构造函数声明的一部分,如果您在实例化时不提供任何值,将使用这些值class。但是因为在你的 main 中你正在实例化 class with company="Samsung" 和 model="S10" 这些值被用来代替默认值。
请记住 class Mobile(val company: String= "unknown", var model: String ="unknown")
只是一个声明,因此 company
和 model
在您调用构造函数之前不会真正初始化