Sobes.tech
Junior — Middle

Miben különböznek az apply és with módszerek használat és cél tekintetében?

sobes.tech MI

Válasz az MI-től

Android (és Kotlin) kontextusban az apply és a with kiterjesztési függvények az objektumokkal való kényelmes munkát szolgálják, de különböznek a használat módjában és a visszatérési értékben.

  • apply: Egy kódrészletet futtat az objektummal thisként, és visszaadja magát az objektumot. Gyakran használják objektumok inicializálására.

  • with: Egy objektumot és egy kódrészletet fogad, végrehajtja a blokkot az objektummal thisként, de visszaadja a blokk utolsó kifejezésének eredményét.

Példa:

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

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

Itt az apply az objektum konfigurálására hasznos, a with pedig műveletek végrehajtására az objektummal és eredmény szerzésére.