当我这样做时
val data = object {
val field = 5
}
fun main(){
println(data.field) // throws
}
Run Code Online (Sandbox Code Playgroud)
它抛出Unresolved reference: field.
但这一切都没问题:
val field = 6
class Data(val field: Int = 7)
val data7 = Data()
fun main(){
val data4 = object {
val field = 4
}
println(field) // ok
println(data4.field) // ok
println(data7.field) // ok
}
Run Code Online (Sandbox Code Playgroud)
我不明白,为什么 Kotlin 不允许我使用顶级对象的属性?我认为这object就像类对象一样,但匿名(没有类)data并且data7在上面的示例中和之间应该没有区别。但是好像有区别。
kotlin ×1