是否可以在 kotlin 中嵌套数据类?

Is it possible to nest dataclass in kotlin?

我正在尝试实现类似的数据 class 定义,如下面的 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

You can simply make it nested inside another class. Nested classes can be data classes.

如果是真的应该怎么做?

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

你们都可以从字面上嵌套 classes:

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
)

其实这里"nesting"是没有必要的。区别主要在于您访问 C class 的方式:A.C 或只是 C.