Kotlin数据类是值类型还是引用类型?



我来自Swift背景。Swift既有"价值",也有"价值"。类型,"reference"类型支持,我有点好奇。Kotlin有类似的概念吗?

默认情况下,任何类都是引用类型。然而,经过一番挖掘,我发现了"数据类"。在Kotlin中表现为值类型。

我没有从官方文件中得到明确的信息。https://kotlinlang.org/docs/data-classes.html

有人能帮助理解这个概念吗?

Kotlin中的数据类与常规类没有太大区别。它们作为对堆上对象的引用来表示和传递。

Kotlin对value/inline类的支持有限:

value class Password(private val s: String)

不幸的是,到目前为止,每个类只能有一个字段。

您可以在KEEP中找到更多信息,包括在Valhalla项目之前/之后是否支持多个字段的推理:https://github.com/Kotlin/KEEP/blob/master/notes/value-classes.md

最新更新