Функция with
Функция with является стандартной функцией Kotlin, которая принимает объект и лямбда-выражение.
Внутри лямбды объект доступен как this, что позволяет обращаться к его членам без явного указания имени объекта.
Функция возвращает результат выполнения лямбда-выражения.
Синтаксис
inline fun <T, R> with(receiver: T, block: T.() -> R): R
Пример
Создадим класс Person и используем with для работы с его свойствами:
class Person(var name: String, var age: Int)
val person = Person("Alice", 25)
val res = with(person) {
name = "Bob"
age = 30
"$name is $age years old"
}
println(res)
Результат выполнения кода:
String "Bob is 30 years old"
Пример
Использование with для работы со списком:
val numbers = mutableListOf(1, 2, 3)
val sum = with(numbers) {
add(4)
add(5)
sum()
}
println(sum)
Результат выполнения кода:
Int 15
Пример
Использование with для работы с StringBuilder:
val str = with(StringBuilder()) {
append("Hello")
append(" ")
append("World")
toString()
}
println(str)
Результат выполнения кода:
String "Hello World"