I'm trying to achieve similar data class definition like the following C one:

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

According to Dmitry Jemerov it is possible, but he didn't provide any code sample. https://discuss.kotlinlang.org/t/is-there-a-reason-for-not-allowing-inner-data-classes/2526/5

只需将其嵌套在另一个类中即可.嵌套类可以是数据类.

如果这是真的,应该怎么做呢?

推荐答案

No, Kotlin does not support anonymous structures like that.

You can both literally nest the classes:

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

Or use a more common syntax:

data class C(
    val d: Int
)

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

其实,在这里"筑巢"是没有必要的.不同之处主要在于您访问C类的方式:A.C个或仅C个.

Kotlin相关问答推荐

在Kotlin中,有没有一种函数方法将一个列表(N个元素)映射到一个相邻元素之和列表(N—1个元素)?

Gradle Jooq配置自定义生成器

如何在Android应用判断上运行多个查询

有没有一种简单的方法来识别物体?

在 Kotlin 中实现并输入 Either

如何在数据类中删除空格 (String)?

如果带注释的成员未被特定块包围,则发出 IDE 警告

奇怪的 cotlin check Not Null 参数错误

IntentService (kotlin) 的默认构造函数

runInTransaction 块内的挂起方法

如何在使用 Gradle 的 AppEngine 项目中使用 Kotlin

Kotlin中的下划线名称是为什么保留的?

禁用 IntelliJ kotlin * 导入?

如何在协程之外获取 Flow 的值?

以Kotlin为单位的货币数据类型

查找是否在列表中找到具有特定属性值的元素

在多平台子元素中使用kapt

Kotlin 是否支持部分应用程序?

如何在 Fragment 中使用 Anko DSL?

Kotlin 中的限制函数