apply
//returns receiver T, T exposed as `this`
fun <T> T.apply(block: T.() -> Unit): T
Описание
Функция apply
вызывается на приемнике T
, который будет отображаться как this
в прошло лямбда-выражение. Приемник также автоматически становится результатом apply
.
with
//return arbitrary value R, not an extension function, T exposed as `this`
fun <T, R> with(receiver: T, block: T.() -> R): R
Описание
Функция with
, в отличие от ко всем другим функциям области видимости (let
, run
, also
, apply
), не определяется как функция расширения . Вместо этого функция вызывается с объектом-приемником в качестве первого аргумента явно. То же, что и apply
, приемник отображается как this
в проходящей лямбда. Результатом лямбда, т. Е. Последнего утверждения, становится результат (R
) of with
.