Kotlin “和”之间有什么区别吗;“接收者对象”;及;分机接收器“;

Kotlin “和”之间有什么区别吗;“接收者对象”;及;分机接收器“;,kotlin,kotlin-extension,Kotlin,Kotlin Extension,根据文件很难说 所以我想知道接收器对象和扩展接收器是否相同?或者名称是否取决于上下文?扩展接收器是接收器对象,而接收器对象是调度接收器或扩展接收器 在一个类中,可以为另一个类声明扩展。在这样一个扩展中,有多个隐式接收者——可以在不使用限定符的情况下访问其成员的对象。声明扩展的类的实例称为dispatch receiver,扩展方法的receiver类型的实例称为extension receiver 在上面的示例中,foo函数有两个隐式接收器:C是调度接收器,D是扩展接收器。如果foo是在类别C之

根据文件很难说

所以我想知道接收器对象扩展接收器是否相同?或者名称是否取决于上下文?

扩展接收器是接收器对象,而接收器对象是调度接收器或扩展接收器

在一个类中,可以为另一个类声明扩展。在这样一个扩展中,有多个隐式接收者——可以在不使用限定符的情况下访问其成员的对象。声明扩展的类的实例称为dispatch receiver,扩展方法的receiver类型的实例称为extension receiver

在上面的示例中,
foo
函数有两个隐式接收器:
C
是调度接收器,
D
是扩展接收器。如果
foo
是在
类别C
之外声明的,那么它将只有一个接收器,即扩展接收器
D

简而言之,接收方对象和扩展接收方可以相同,但还有另一种类型的接收方对象,称为分派接收方

有关更多详细信息,请参见。

扩展接收器是接收器对象,而接收器对象是调度接收器或扩展接收器

在一个类中,可以为另一个类声明扩展。在这样一个扩展中,有多个隐式接收者——可以在不使用限定符的情况下访问其成员的对象。声明扩展的类的实例称为dispatch receiver,扩展方法的receiver类型的实例称为extension receiver

在上面的示例中,
foo
函数有两个隐式接收器:
C
是调度接收器,
D
是扩展接收器。如果
foo
是在
类别C
之外声明的,那么它将只有一个接收器,即扩展接收器
D

简而言之,接收方对象和扩展接收方可以相同,但还有另一种类型的接收方对象,称为分派接收方


有关更多详细信息,请参阅。

非常感谢这句话让我明白了“如果foo是在C类之外声明的,那么它将只有一个接收器,即扩展接收器D。”非常感谢这句话让我明白了一切“如果foo是在类C之外声明的,那么它将只有一个接收方,即扩展接收方D。”
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
    }
}