Sobes.tech
Junior

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