Sobes.tech
Junior — Middle

Каква е разликата между методите apply и with по отношение на използването и предназначението им?

sobes.tech AI

Отговор от 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 за извършване на операции с обекта и получаване на резултат.