Sobes.tech
Back to questions
Junior — Middle
77

Чем отличаются методы apply и with в контексте их использования и назначения?

Companies where asked
GrowFood

Answer from AI

sobes.tech AI

В контексте Android (и Kotlin) apply и with — это функции расширения для удобной работы с объектами, но они отличаются по способу использования и возвращаемому значению.

  • apply: Выполняет блок кода с объектом как this и возвращает сам объект. Часто используется для инициализации объектов.

  • with: Принимает объект и блок кода, выполняет блок с объектом как this, но возвращает результат последнего выражения в блоке.

Пример:

val paint = Paint().apply {
    color = Color.RED
    strokeWidth = 10f
}

val length = with(paint) {
    color.toString() + strokeWidth.toString()
}

Здесь apply удобен для настройки объекта, а with — для выполнения операций с объектом и получения результата.