Sobes.tech
Junior — Middle

V čom sa líšia metódy apply a with z hľadiska ich použitia a účelu?

sobes.tech AI

Odpoveď od AI

V kontexte Androidu (a Kotlinu) sú apply a with rozširujúce funkcie na jednoduchšiu prácu s objektmi, avšak líšia sa spôsobom použitia a hodnotou, ktorú vracajú.

  • apply: Spustí blok kódu s objektom ako this a vráti samotný objekt. Často sa používa na inicializáciu objektov.

  • with: Prijme objekt a blok kódu, vykoná blok s objektom ako this, ale vráti výsledok posledného výrazu v bloku.

Príklad:

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

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

Tu je apply užitočné na nastavenie objektu, a with na vykonanie operácií s objektom a získanie výsledku.