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