Есть ли разница между «объектом-получателем» и «приемником расширения»,

Трудно сказать по документам https://kotlinlang.org/docs/reference/extensions.html

так что я задаюсь вопросом, являются ли получателем и ресивером то же самое? или имя зависит от контекста?

Приемник расширения является объектом приемника, в то время как объект приемника является либо приемником отправки, либо приемником расширения .

Внутри класса вы можете объявлять расширения для другого класса. Внутри такого расширения есть несколько неявных приемников – объектов, к которым можно получить доступ без квалификатора. Экземпляр класса, в котором объявлен расширение, называется приемником отправки , а экземпляр типа приемника метода расширения называется расширительным приемником .

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 .

Intereting Posts
Kotlin: Как вставить список объектов в комнату? Написание javascript-приложений с Kotlin Создание соединений P2P с Wi-Fi на Android: создание класса BroadcastReceiver Невозможно размонтировать коллекцию объектов xml с использованием JAXB и Kotlin Kotlin с трудом подводит итог к предполагаемому (на месте) параметру Java Int to Float, чтобы получить 1f для 1 Android WebView прыгает вверху каждого обновления страницы (?) «Ошибка неоднозначности разрешения перегрузки» разрешена с другой перегрузкой В Kotlin, как мне добавить методы расширения в другой класс, но только видимый в определенном контексте? Кинжал 2, вводящий представление модели активности в фрагмент Уведомление Android не отображается на API 26 В kotlin, Когда я перегружаю оператор inc (), я получаю ошибку val … get () {…} в Котлине Нестандартное представление Android для медленного рендеринга с возможностью выделения фона Зачем получать класс в Котлин, используя двойную двоеточие (: :)?