c# - Kotlin 的数据类 == C# 的结构?

标签 c# kotlin

我之前使用过 C#,我们可以在其中定义一个 struct,它将是一个值类型。我现在正在学习 Kotlin,据我所知,kotlin data-class 按值比较,可以按值复制等。在网上找到了一些关于此的讨论,但这并不简单,我想精通 C# 和 Kotlin 的人来澄清这一点:我可以像 C# struct 一样解释 Kotlin 的 data class 并收工吗?如果不是,有什么区别?

最佳答案

Kotlin 数据类和 C# 结构的主要区别在于,Kotlin 数据类仍然是,它们通过引用(一种引用类型,就 C# 而言)传递并存储在与其他对象相同的堆(不考虑可能的 JVM 优化)而不是堆栈,与其他对象的形式相同。

数据类的复制和相等检查实现只是生成到类的方法中,并以 JVM 自然方式调用为实例方法。

数据类与结构体的一些共同限制是由不同的原因造成的:例如,数据类是最终的,因为数据类继承的自动生成函数的语义不明确。

关于c# - Kotlin 的数据类 == C# 的结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47994790/

相关文章:

c# - 如何在 Windows 64 位上使用 SQL Server Compact Edition 32 位?

c# - Excel 中的范围.替换

android - 将流量转换为实时数据的最佳方式

java - 在 Kotlin 中启用 CORS 时,Spark 在访问路线时返回空响应

json - Moshi 用不同的键解析 json

android - Hilt : java. lang.ClassNotFoundException: 找不到类 "com.kotlin20test.Hilt_MyApp"

c# - LoadComponent() 与。 XamlReader.Load()?

c# - 如何将分层数据数据绑定(bind)到 WPF TreeView?

c# - 为什么我的应用程序在注销/关闭时没有关闭(c#/.net winforms)?

kotlin - Map withDefault 无法在 kotlin 中工作?