Kokias pagalbines funkcijas žinote ar naudojote savo patirtyje?
sobes.tech AI
Atsakymas iš AI
-
Lambdų išraiškos: Trumpina kodą mažoms funkcijų apdorojimo funkcijoms, pavyzdžiui, paspaudimams ar atgaliniams kvietimams.
-
Extension Functions (Kotlin): Prideda naujas funkcijas prie esamų klasių be paveldėjimo, gerindamos skaitomumą ir patogumą.
fun String.isPalindrome(): Boolean { // Patikrina, ar eilutė yra palindromas return this == this.reversed() } -
Inline Functions (Kotlin): Įterpia funkcijos turinį į iškvietimo vietą, sumažindama objekto kūrimo išlaidas, ypač naudinga su lambda išraiškomis.
inline fun measureExecutionTime(block: () -> Unit) { // Matuoja vykdymo laiką val startTime = System.currentTimeMillis() block() val endTime = System.currentTimeMillis() println("Vykdymo laikas: ${endTime - startTime} ms") } -
Data Classes (Kotlin): Automatiškai generuoja
equals(),hashCode(),toString(),copy(), patogus duomenų saugojimui.data class User(val name: String, val age: Int) -
Sealed Classes (Kotlin): Ribota paveldėjimo hierarchija, naudinga būsenų ar įvykių modeliavimui, ypač su
whenoperatoriumi. -
Generics: Leidžia kurti daugkartinio naudojimo komponentus, dirbančius su įvairiais duomenų tipais.
public class Box<T> { // Bendrasis klasė bet kokio duomenų tipo saugojimui private T data; public void setData(T data) { this.data = data; } public T getData() { return data; } } -
Operacijos su kolekcijomis (map, filter, reduce ir kt.): Funkciniai metodai duomenų kolekcijų apdorojimui:
val numbers = listOf(1, 2, 3, 4, 5) val squaredEvenNumbers = numbers .filter { it % 2 == 0 } // Filtruoti lyginius .map { it * it } // Pakelti kvadratu -
Resource getters (Kotlin): Gauti eilutes, spalvas, dydžius ir kt. iš išteklių:
val appName = context.getString(R.string.app_name) val primaryColor = ContextCompat.getColor(context, R.color.colorPrimary) -
Nullable types and safe calls (Kotlin): Sumažina
NullPointerExceptionskaičių:val name: String? = null val length = name?.length ?: 0 // Saugi iškvietimas ir Elvis operatorius