with
Не extension: вызывает блок с this = receiver.
Сигнатура
inline fun <T, R> with(receiver: T, block: T.() -> R): Rwith — обычная функция (не extension), принимает объект и блок, где он доступен как this. Возвращает результат блока.
val sb = StringBuilder()
val r = with(sb) {
append("a"); append("b")
toString()
}
println(r) // ab