Ответ
with — это функция-расширение Kotlin, которая позволяет выполнить блок кода в контексте переданного объекта. Внутри блока this ссылается на объект, а результат — последнее выражение в блоке.
Пример:
val text = with(StringBuilder()) {
append("Hello")
append(", ")
append("world!")
toString() // результат
}
// text = "Hello, world!"
Особенности:
- Не изменяет исходный объект (в отличие от
apply). - Возвращает результат блока, а не объект.
- Упрощает работу с объектами, требующими множественных операций.