我来自 Swift 背景。 Swift 同时支持“值”类型和“引用”类型,我有点好奇。 Kotlin 有类似的概念吗?
默认情况下,任何类都是引用类型。然而,经过一些挖掘,我发现 Kotlin 中的“数据类”表现为值类型。
我没有从官方文档中得到明确的说明。 https://kotlinlang.org/docs/data-classes.html
有人可以帮助理解这个概念吗?
最佳答案
Kotlin 中的数据类与常规类没有太大区别。它们被表示并作为对堆上对象的引用传递。
Kotlin 对 value/inline classes 的支持有限:
value class Password(private val s: String)
不幸的是,目前这仅限于每个类只有一个字段。
您可以在 KEEP 中找到更多信息,包括 Valhalla 项目之前/之后是否支持多个字段的推理:https://github.com/Kotlin/KEEP/blob/master/notes/value-classes.md
关于kotlin - Kotlin 数据类是值类型还是引用类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75916106/