Milyen segédfunkciókat ismersz vagy használtál a tapasztalatod során?
sobes.tech MI
Válasz az MI-től
-
Lambdák: Rövidítik a kódot kis függvényekhez, például kattintásokhoz vagy callback-ekhez.
-
Kiterjesztő függvények (Kotlin): Új funkciókat adnak meglévő osztályokhoz öröklés nélkül, javítva az olvashatóságot és a kényelmet.
fun String.isPalindrome(): Boolean { // Ellenőrzi, hogy a sztring palindróma-e return this == this.reversed() } -
Inline függvények (Kotlin): Beágyazzák a függvény törzsét a hívás helyére, csökkentve a függvényobjektum létrehozásának költségét, különösen lambdákkal.
inline fun measureExecutionTime(block: () -> Unit) { // Mérjük a kódblokk végrehajtási idejét val startTime = System.currentTimeMillis() block() val endTime = System.currentTimeMillis() println("Végrehajtási idő: ${endTime - startTime} ms") } -
Adat osztályok (Kotlin): Automatikusan generálják az
equals(),hashCode(),toString(),copy()metódusokat, hasznos adatok tárolásához.data class User(val name: String, val age: Int) -
Lezárt osztályok (Kotlin): Korlátozott osztályhierarchiát képviselnek, hasznosak állapotok vagy események modellezéséhez, különösen a
when-nal. -
Generikus típusok: Lehetővé teszik újrahasznosítható komponensek létrehozását, amelyek különböző adat típusokkal működnek.
public class Box<T> { // Általános osztály bármilyen adat típus tárolására private T data; public void setData(T data) { this.data = data; } public T getData() { return data; } } -
Gyűjtemények műveletei (map, filter, reduce stb.): Funkcionális módszerek adathalmazok feldolgozására.
val numbers = listOf(1, 2, 3, 4, 5) val squaredEvenNumbers = numbers .filter { it % 2 == 0 } // Páros szűrése .map { it * it } // Négyzetre emelés -
Erőforrás lekérők (Kotlin): Szövegek, színek, méretek stb. lekérése erőforrásokból.
val appName = context.getString(R.string.app_name) val primaryColor = ContextCompat.getColor(context, R.color.colorPrimary) -
Nullable típusok és biztonságos hívások (Kotlin): Csökkentik a
NullPointerException-ek számát.val name: String? = null val length = name?.length ?: 0 // Biztonságos hívás és Elvis operátor