Junior
Kādas redzes funkcijas jūs zināt Kotlin?
sobes.tech AI
Atbilde no AI
let: Izpilda koda bloka uz objekta un atgriež pēdējās izteiksmes rezultātu. Bieži tiek izmantots drošai metožu izsaukšanai uz nullable objektiem.run: ir divas iespējas:- kā paplašinājums: izpilda koda bloka uz objekta (
this) un atgriež pēdējās izteiksmes rezultātu. - kā neatkarīga funkcija: izpilda koda bloku bez saņēmēja un atgriež pēdējās izteiksmes rezultātu.
- kā paplašinājums: izpilda koda bloka uz objekta (
with: izpilda koda bloka uz saņēmēja objekta un atgriež pēdējās izteiksmes rezultātu.apply: izpilda koda bloku uz objekta (this) un atgriež pašu objektu. Bieži tiek izmantots objekta īpašību konfigurēšanai.also: izpilda koda bloku uz objekta (it) un atgriež pašu objektu. Tiek izmantots blakus darbībām uz objekta.
// `let` piemērs
val name: String? = "Kotlin"
val length = name?.let {
// this == null
// it == "Kotlin"
it.length // virknes garums
} // length == 6
// `run` kā paplašinājuma piemērs
val numbers = mutableListOf(1, 2, 3)
val firstAndLast = numbers.run {
listOf(first(), last())
// this == numbers
} // firstAndLast == [1, 3]
// `run` kā neatkarīga funkcija piemērs
val result = run {
// bez saņēmēja
println("Running a block")
1 + 2 // atgriež 3
} // result == 3
// `with` piemērs
val configuration = configureUsing {
// this - objekts, kas tiek nodots
width = 100
height = 200
}
fun configureUsing(builder: ScopeExample.() -> Unit): ScopeExample {
val example = ScopeExample()
example.builder()
return example
}
class ScopeExample {
var width: Int = 0
var height: Int = 0
}
// `apply` piemērs
val person = mutableListOf<String>().apply {
// this == saraksts
add("Alice")
add("Bob")
} // person == ["Alice", "Bob"]
// `also` piemērs
val list = mutableListOf(1, 2, 3)
val doubledList = list.also {
// it == saraksts
println("Processing list: $it")
}.map { it * 2 } // doubledList == [2, 4, 6]