Kokias scope funkcijas Kotlin žinai?
sobes.tech AI
Atsakymas iš AI
Kotlin'e yra keletas apimties funkcijų (scope functions), kurios leidžia atlikti operacijas su objektu tam tikrame kontekste. Pagrindinės:
-
let — vykdo kodo bloką su objektu kaip argumentu
itir grąžina bloko rezultatą. Dažnai naudojama saugiai dirbti su nullable.val name: String? = "Kotlin" name?.let { println("Vardo ilgis: ${it.length}") } -
run — vykdo kodo bloką su objektu kaip
thisir grąžina bloko rezultatą. Naudinga inicializacijai ir skaičiavimams.val result = "Hello".run { println(this) length } -
with — panaši į
run, bet kviečiama kaip funkcija su objektu kaip parametru ir grąžina bloko rezultatą.val builder = StringBuilder() val result = with(builder) { append("Hello") append(" World") toString() } -
apply — vykdo bloką su objektu kaip
thisir grąžina patį objektą. Dažnai naudojama objektų konfigūravimui.val person = Person().apply { name = "John" age = 30 } -
also — vykdo bloką su objektu kaip
itir grąžina patį objektą. Naudojama papildomoms veikloms, pvz., logavimui.val numbers = mutableListOf(1, 2, 3).also { println("Sąrašas: $it") }
Kiekviena funkcija skiriasi tuo, kaip perduoda objektą lambda (this arba it) ir ką grąžina (bloko rezultatą ar patį objektą).