gpt4 book ai didi

kotlin - 当其他成员可以访问时,为什么不能访问 Kotlin 伴生对象内的对象 "statically"?

转载 作者:行者123 更新时间:2023-12-01 00:23:42 24 4
gpt4 key购买 nike

给定一个 Kotlin 伴侣对象

class A {
companion object {
val a = 0
fun b() = 1
object C {
val d = 0
}
}
}

fun main(args: Array<String>) {
println(A.a)
println(A.b())
println(A.C.d) // doesn't compile
println(A.Companion.C.d)
}

为什么是 Companion需要访问 A.C当它不适合 ab() ?

最佳答案

这用于消除在伴随对象中声明的对象与在类中直接声明的对象的歧义。

请注意,类中定义的属性和函数与来自伴生对象的属性和函数没有歧义,因为前者只能在类的实例上调用。但是可以使用类名引用嵌套对象:

class A {
object C {
val d = 0
}
}

println(A.C.d)

关于kotlin - 当其他成员可以访问时,为什么不能访问 Kotlin 伴生对象内的对象 "statically"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46561324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com