之前我使用过C#,我们可以定义struct一个值类型.我现在正在学习Kotlin,据我所知,kotlin data-class按价值进行比较,可以按价值复制等.在网上发现了一些关于此的讨论,但这并不简单,我希望C#和Kotlin的技术人员能够清除这一点. :我可以将Kotlin解释data class为C#struct并称之为一天吗?如果不是,有什么区别?
Kotlin数据类和C#结构之间的主要区别在于Kotlin数据类仍然是类,它们通过引用传递(引用类型,以C#表示)并与其他对象存储在同一堆中(不采用可能的JVM)优化到帐户)而不是堆栈,与其他对象的形式相同.
数据类的复制和等式检查实现只是生成到类的方法中,并以JVM自然方式称为实例方法.
数据类与结构相同的一些限制是由不同的原因引起的:例如,数据类是最终的,因为来自数据类继承的自动生成函数的语义不清楚.