kotlin - 我可以在类外使用扩展 *member* 吗?

标签 kotlin extension-function

这个问题在这里已经有了答案:





Kotlin call member Extension function from other class

(1 个回答)


3年前关闭。




如果我在 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

最佳答案

是的:

with(b) { 
    a.foo() 
} 

接受带有 B 的 lambda 的其他函数接收器也可以工作。

关于kotlin - 我可以在类外使用扩展 *member* 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55282299/

相关文章:

ANDROID: org.gradle.api.GradleException: 找不到满足版本约束的 'org.jetbrains.kotlin:kotlin-stdlib' 版本

Kotlin:如何调用 super 的扩展函数?

android - Kotlin 扩展函数

java - 如何在一行中打印 Kotlin 中字符串数组的所有元素?

kotlin - 如何在 Kotlin 中内联扩展函数的接收器参数?

java - 在java代码中定义Kotlin扩展函数

android - 在 kotlin 上从 this@ 更改名称

list - 在 Kotlin 中将 map 转换为 map 列表

android - 如何在 Jetpack Compose 中设置行宽等于 TextField 的宽度?

android - 为什么 Android 需要 View 模型工厂?