Ответ
Implicit receivers — это неявные объекты, к которым можно обращаться без явного указания внутри лямбд или extension-функций. В Kotlin они доступны через this или this@OuterClass.
Пример:
class MyClass {
fun doSomething() {
with(StringBuilder()) {
append("Hello") // Неявный receiver — `StringBuilder`
this.append("World") // Явный receiver
}
}
}
Нюансы:
- Вложенные лямбды могут переопределять receiver (
apply/with/run). - Если receiver перекрыт, можно использовать квалифицированный
this@Class. - Implicit receivers упрощают код, но могут снижать читаемость в сложных scope.