Kotlin 中 var
和 val
有什么区别?
我已浏览此链接:
KotlinLang: Properties and Fields
正如此链接所述:
The full syntax of a read-only property declaration differs from a mutable one in two ways: it starts with val instead of var and does not allow a setter.
但之前有一个使用 setter 的示例。
fun copyAddress(address: Address): Address {
val result = Address() // there's no 'new' keyword in Kotlin
result.name = address.name // accessors are called
result.street = address.street
// ...
return result
}
var
和 val
之间的确切区别是什么?
为什么我们需要两者?
这不是 Variables in Kotlin, differences with Java: 'var' vs. 'val'? 的重复项因为我询问的是与文档中的特定示例相关的疑问,而不仅仅是一般性的疑问。
最佳答案
在您的代码中,result
没有改变,它的 var
属性正在改变。引用以下评论:
fun copyAddress(address: Address): Address {
val result = Address() // result is read only
result.name = address.name // but not their properties.
result.street = address.street
// ...
return result
}
val
与java中的final
修饰符相同。您可能应该知道,我们不能再次分配给 final
变量,但可以更改其属性。
关于kotlin - Kotlin 中 var 和 val 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60999454/