Sobes.tech
Junior — Middle

Czym różnią się metody apply i with pod względem ich użycia i przeznaczenia?

sobes.tech AI

Odpowiedź od 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 — для выполнения операций с объектом и получения результата.