kotlin - 我可以在课堂外使用扩展 *member* 吗?
问题描述
如果我在 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 的其他函数也可以工作。
推荐阅读
- python - 附加到列表的 Python 类对象
- python - 如何对作为矩阵行给出的特定索引集的平均值计算进行矢量化?
- c# - 如何以编程方式将文档从 .xml 文件导入 .cs 文件?
- android - 涉及注释库的 AndroidX 的 Play-Services-Maps 和 Android Studio 3.3 问题
- autodesk-forge - 设置对象的颜色(Autodesk forge)
- swift - Swift 中的共享变量
- node.js - “ng new xxx”给出错误错误代码-4048
- javascript - 如何在 columlayout 中正确设置 lebel
- bash - 将文件的行解析为 bash 脚本参数
- amazon-web-services - DynamoDB 在网络上的支持文档很少