apply и with — это обе scope-функции в Kotlin, которые позволяют выполнить блок кода в контексте объекта, но они отличаются способом вызова и тем, что возвращают.
applythisval button = Button().apply {
text = "Submit"
isEnabled = true
}
withthisval result = with(button) {
text = "Cancel"
isEnabled
}
apply — это extension-функция; with — обычная функцияapply возвращает объект-ресивер; with возвращает результат лямбдыapply для инициализации объекта; with для работы с уже существующим объектомИспользуй apply, когда ты создаёшь или конфигурируешь объект и хочешь, чтобы он вернулся автоматически — идеально для билдеров или установки свойств.
Используй with, когда ты работаешь с существующим объектом и тебе нужно последнее выражение блока как результат, а не сам объект.
Функция apply возвращает исходный объект-получатель, что делает её подходящей для паттернов fluent builder, где ты конфигурируешь объект и затем передаёшь его в другую функцию.
Новый — ещё не проверен сообществом
Вы