Aké pomocné funkcie poznáte alebo ste ich použili vo svojej skúsenosti?
sobes.tech AI
Odpoveď od AI
-
Lambda výrazy: Skracujú kód pre malé funkcie-obrátky, napríklad kliknutia alebo spätné volania.
-
Extension Functions (Kotlin): Pridávajú nové funkcie k existujúcim triedam bez ich dedičstva, zlepšujúc čitateľnosť a pohodlie.
fun String.isPalindrome(): Boolean { // Kontroluje, či je reťazec palindróm return this == this.reversed() } -
Inline Functions (Kotlin): Vloží telo funkcie na miesto volania, znižujúc náklady na vytvorenie objektu funkcie, obzvlášť užitočné s lambda výrazmi.
inline fun measureExecutionTime(block: () -> Unit) { // Meria čas vykonania bloku kódu val startTime = System.currentTimeMillis() block() val endTime = System.currentTimeMillis() println("Čas vykonania: ${endTime - startTime} ms") } -
Data Classes (Kotlin): Automaticky generujú
equals(),hashCode(),toString(),copy(), čo je vhodné na ukladanie dát.data class User(val name: String, val age: Int) -
Sealed Classes (Kotlin): Predstavujú obmedzenú hierarchiu tried, užitočné na modelovanie stavov alebo udalostí, najmä v kombinácii s operátorom
when. -
Generics: Umožňujú vytvárať opakovane použiteľné komponenty, ktoré pracujú s rôznymi typmi dát.
public class Box<T> { // Generická trieda na ukladanie akéhokoľvek typu dát private T data; public void setData(T data) { this.data = data; } public T getData() { return data; } } -
Operácie s kolekciami (map, filter, reduce a iné): Funkcionálne metódy na spracovanie kolekcií dát.
val numbers = listOf(1, 2, 3, 4, 5) val squaredEvenNumbers = numbers .filter { it % 2 == 0 } // Filtruje párne .map { it * it } // Umocňuje na druhú -
Resource getters (Kotlin): Na získanie reťazcov, farieb, rozmerov a pod. z zdrojov.
val appName = context.getString(R.string.app_name) val primaryColor = ContextCompat.getColor(context, R.color.colorPrimary) -
Nullable types and safe calls (Kotlin): Znižujú počet
NullPointerException.val name: String? = null val length = name?.length ?: 0 // Bezpečný volanie a operátor Elvis