小编Dmi*_*nko的帖子

如何访问顶级对象的字段?

当我这样做时

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

6
推荐指数
1
解决办法
69
查看次数

标签 统计

kotlin ×1