Android 关于科特林的密封类,哪一个是正确的?

Android 关于科特林的密封类,哪一个是正确的?,android,kotlin,Android,Kotlin,似乎有两种方法可以定义一个密封类,代码a和代码B之间哪一种是正确的 代码A sealed class ExprA data class Const(val number: Double) : ExprA() data class Sum(val e1: ExprA, val e2: ExprA) : ExprA() 代码B sealed class ExprB{ data class Const(val number: Double) : ExprB() data class

似乎有两种方法可以定义一个密封类,代码a和代码B之间哪一种是正确的

代码A

sealed class ExprA
data class Const(val number: Double) : ExprA()
data class Sum(val e1: ExprA, val e2: ExprA) : ExprA()
代码B

sealed class ExprB{
    data class Const(val number: Double) : ExprB()
    data class Sum(val e1: ExprB, val e2: ExprB) : ExprB()
}

我不能说我个人使用了第一种方法来编写密封类,所以我不确定这在语法上是否正确。如果是这样的话,这将是一种真正的代码风格偏好。从维护的角度来看,我个人更喜欢第二个,因为它更易于阅读,并确保封装在密封类中的内容

我不能说我个人使用了第一种方法来编写密封类,所以我不确定这在语法上是否正确。如果是这样的话,这将是一种真正的代码风格偏好。从维护的角度来看,我个人更喜欢第二个,因为它更易于阅读,并确保封装在密封类中的内容

若要声明密封类,请将密封修饰符放在类名称之前。密封类可以有子类,但所有子类都必须与密封类本身声明在同一个文件中。(在Kotlin 1.1之前,规则更为严格:类必须嵌套在密封类的声明中)

如果在=1.1,两者都是正确的

若要声明密封类,请将密封修饰符放在类名称之前。密封类可以有子类,但所有子类都必须与密封类本身声明在同一个文件中。(在Kotlin 1.1之前,规则更为严格:类必须嵌套在密封类的声明中)


如果在=1.1,两者都是正确的

感谢@rafid059查找文档!因为两者都是正确的,所以值得一提的是kotlin可以让您编写更简洁的代码。但权力越大,责任越大。因此,尽量不要刻意少写几行。感谢@rafid059查找文档!因为两者都是正确的,所以值得一提的是kotlin可以让您编写更简洁的代码。但权力越大,责任越大。所以尽量不要刻意少写几行。