Igo*_*jda 0 kotlin kotlin-extension
根据文档https://kotlinlang.org/docs/reference/extensions.html很难说出来
所以我想知道接收器对象和扩展接收器是一样的吗?或者名称取决于上下文?
一个扩展接收器是一个接收器对象而接收器对象可以是一个调度接收器或扩展接收器.
在类中,您可以为另一个类声明扩展.在这样的扩展中,有多个隐式接收器 - 可以在没有限定符的情况下访问其成员.声明扩展名的类的实例称为调度接收器,扩展方法的接收器类型的实例称为扩展接收器.
Run Code Online (Sandbox Code Playgroud)class D { fun bar() { ... } } class C { fun baz() { ... } fun D.foo() { bar() // calls D.bar baz() // calls C.baz } fun caller(d: D) { d.foo() // call the extension function } }
在上面的例子中,该函数foo有两个隐式接收器:C是调度接收器,D是扩展接收器.如果foo在那之外宣布class C它将只有一个接收器,它将是扩展接收器 D.
简而言之,接收器对象和扩展接收器可以是相同的,但是还有另一种类型的接收器对象,称为调度接收器.
有关更多详细信息,请参阅将扩展声明为成员 - 扩展 - Kotlin编程语言.
| 归档时间: |
|
| 查看次数: |
313 次 |
| 最近记录: |