Sobes.tech
Junior — Middle

Kā atšķiras metodes apply un with to lietošanas un mērķa ziņā?

sobes.tech AI

Atbilde no AI

Kontekstā Android (un Kotlin), apply un with ir paplašināšanas funkcijas, kas ļauj ērtāk strādāt ar objektiem, taču tās atšķiras pēc lietošanas veida un atgrieztās vērtības.

  • apply: Izpilda koda bloku ar objektu kā this un atgriež pašu objektu. Bieži tiek izmantots objektu inicializācijai.

  • with: Pieņem objektu un koda bloku, izpilda bloku ar objektu kā this, bet atgriež pēdējās izteiksmes rezultātu.

Piemērs:

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

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

Šeit apply ir noderīgs objekta konfigurēšanai, bet with – operācijām ar objektu un rezultāta iegūšanai.