Sobes.tech
Junior

Jaké pomocné funkce znáte nebo jste použili ve své zkušenosti?

sobes.tech AI

Odpověď od AI

  • Lambda výrazy: Zkracují kód pro malé funkce obsluhy, například kliknutí nebo callbacky.

  • Rozšiřující funkce (Kotlin): Přidávají nové funkce stávajícím třídám bez dědičnosti, zlepšují čitelnost a pohodlí.

    fun String.isPalindrome(): Boolean {
        // Kontroluje, zda je řetězec palindrom
        return this == this.reversed()
    }
    
  • Inline funkce (Kotlin): Vkládají tělo funkce na místo volání, snižují režii při vytváření objektů funkcí, zvláště s lambdami.

    inline fun measureExecutionTime(block: () -> Unit) {
        // Měří dobu běhu bloku kódu
        val startTime = System.currentTimeMillis()
        block()
        val endTime = System.currentTimeMillis()
        println("Doba provádění: ${endTime - startTime} ms")
    }
    
  • Datové třídy (Kotlin): Automaticky generují equals(), hashCode(), toString(), copy(), vhodné pro ukládání dat.

    data class User(val name: String, val age: Int)
    
  • Uzavřené třídy (Kotlin): Představují omezenou hierarchii tříd, užitečné pro modelování stavů nebo událostí, zvláště v kombinaci s when.

  • Generics: Umožňují vytvářet znovupoužitelné komponenty, které pracují s různými datovými typy.

    public class Box<T> {
        // Obecná třída pro ukládání libovolného typu dat
        private T data;
    
        public void setData(T data) {
            this.data = data;
        }
    
        public T getData() {
            return data;
        }
    }
    
  • Operace s kolekcemi (map, filter, reduce atd.): Funkcionální metody pro zpracování kolekcí dat.

    val numbers = listOf(1, 2, 3, 4, 5)
    val squaredEvenNumbers = numbers
        .filter { it % 2 == 0 } // Filtrace sudých
        .map { it * it }      // Umocnění na druhou
    
  • Získávání zdrojů (Kotlin): Pro získání řetězců, barev, velikostí atd. ze zdrojů.

    val appName = context.getString(R.string.app_name)
    val primaryColor = ContextCompat.getColor(context, R.color.colorPrimary)
    
  • Nullable typy a bezpečné volání (Kotlin): Snižují počet NullPointerException.

    val name: String? = null
    val length = name?.length ?: 0 // Bezpečné volání a operátor Elvis