【发布时间】:2019-03-21 14:07:13
【问题描述】:
如果我在 B 类中声明了类型 A 的扩展函数:
class A
class B {
fun A.foo() = "Hello"
}
我可以从 B 类之外的代码中调用这个函数吗?
val a = A()
val b = B()
a.foo() // error: unresolved reference: foo
b.foo() // error: unresolved reference: foo
【问题讨论】:
-
这段代码看起来甚至无法编译。诚然,我不是 Kotlin 专家,但是......也许你可以展示更多代码? Kotlin 是否有您忘记包含的访问修饰符?
-
@RobertHarvey 第一部分肯定会编译。第二部分不会,因为扩展方法
A.foo不像错误所说的那样在全局范围内。 -
@RobertHarvey 唯一不能编译的部分是我说会有错误的地方:play.kotlinlang.org/…