kotlin - Kotlin中的var和val有什么区别?

Kotlin中的varval有什么区别?
我已经通过这个链接:
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.


但是就在前面,有一个使用二传手的例子。
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
}
varval之间的确切区别是什么?
为什么我们都需要?
这是,而不是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变量,但可以更改其属性。

https://stackoverflow.com/questions/44200075/

相关文章:

kotlin - Kotlin 中的惯用登录方式

kotlin - 为什么我们使用 "companion object"作为 Kotlin 中 Jav

kotlin - 如何将 Kotlin 的 MutableList 初始化为空 MutableLis

arrays - 如何用值初始化 Kotlin 中的数组?

constants - "const"和 "val"有什么区别?

properties - 使用 "by lazy"与 "lateinit"进行属性初始化

kotlin - 如何在 Kotlin 中将 String 转换为 Long?

collections - Kotlin 的列表缺少 "add"、 "remove"、 map 缺少

kotlin - 在 Kotlin 中按多个字段对集合进行排序

kotlin - 智能转换为 'Type' 是不可能的,因为 'variable' 是一个可变属性,