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

标签 kotlin value-type data-class reference-type

我来自 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/

相关文章:

android - 由于 ModelClass 在 KotlinMultiplatform 应用程序中不是可序列化或可解析的,导致 nav_graph 参数错误

Kotlin 独立编译器手动安装

java - MPAndroidChart 中条形图的单击事件是在条形列上触发的,而不是仅在条形图上触发

c# - 在互操作方法中为 `null` 参数传递 `ref struct` 引用

java - 如何将 Java 类转换为 Kotlin 数据类

spring - 如何在后期初始化中保留不可为空的属性

kotlin - 有没有办法在数据类构建时转换属性的值?

android - 将从图像选择器中选取的图像添加到回收器 View 、Android Studio、Kotlin

c# - 无法分配从方法返回的结构的属性

c# - 值类型的对象扩展方法