【问题标题】:Is it possible to nest dataclass in kotlin?是否可以在 kotlin 中嵌套数据类?
【发布时间】:2019-10-07 16:32:07
【问题描述】:

我正在尝试实现类似以下 C 的数据类定义:

struct A {
  int b;
  struct {
     int d;
  } c; 
};

根据 Dmitry Jemerov 的说法,这是可能的,但他没有提供任何代码示例。 https://discuss.kotlinlang.org/t/is-there-a-reason-for-not-allowing-inner-data-classes/2526/5

您可以简单地将其嵌套在另一个类中。嵌套类可以是数据类。

如果是真的应该怎么做?

【问题讨论】:

    标签: kotlin data-class


    【解决方案1】:

    不,Kotlin 不支持这样的匿名结构。

    你可以在字面上嵌套类:

    data class A(
        val b: Int,
        val c: C
    ) {
        data class C(
            val d: Int
        )
    }
    

    或者使用更常见的语法:

    data class C(
        val d: Int
    )
    
    data class A(
        val b: Int,
        val c: C
    )
    

    其实这里不需要“嵌套”。区别主要在于您访问C 类的方式:A.C 或只是C

    【讨论】:

    • 你的意思是像C案例那样用“匿名数据类”是不可能做到的?
    • 不,Kotlin 不支持这样的匿名结构。
    猜你喜欢
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-20
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    相关资源
    最近更新 更多