是否可以在 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
.
我正在尝试实现类似的数据 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
.