Middle
Kāda ir atšķirība starp paplašināšanas funkcijām let, run, also un apply Kotlin?
sobes.tech AI
Atbilde no AI
let: Izsauc slēgumu uz objektu un atgriež slēguma rezultātu. Ļauj izmantot objektu kā lambda izteiksmes argumentu (it). Piemērots darbam ar nullable objektiem.
// Piemērs, izmantojot let
val nullableString: String? = "Hello"
val length = nullableString?.let {
// it - tas ir ne-null String
it.length
}
run: Izpilda koda bloku uz objekta un atgriež bloka rezultātu. Bloka iekšpusē objekts ir pieejams kā this. Noder objekta inicializācijai un metožu izsaukšanai.
// Piemērs, izmantojot run
val result = buildString {
// this - tas ir StringBuilder
append("Start\n")
append("Middle\n")
}.run {
// this - tas ir String
uppercase()
}
also: Izsauc slēgumu uz objektu un atgriež pašu objektu. Atļauj veikt papildu darbības (piemēram, žurnālu vai konfigurāciju) bez objekta izmaiņām.
// Piemērs, izmantojot also
val list = mutableListOf("a", "b", "c").also {
// it - tas ir MutableList
println("Izveidots saraksts: $it")
}
apply: Izsauc slēgumu uz objektu un atgriež pašu objektu. Bloka iekšpusē objekts ir pieejams kā this. Ērti konfigurēt objekta īpašības.
// Piemērs, izmantojot apply
val textView = TextView(context).apply {
// this - tas ir TextView
text = "Sveiki, pasaule!"
textSize = 16f
setTextColor(Color.BLACK)
}
Galvenās atšķirības:
| Funkcija | Kā ir pieejams objekts | Ko atgriež | Tipiska pielietojuma joma |
|---|---|---|---|
let |
it |
Lambda rezultāts | Nullable objekti, transformācija |
run |
this |
Lambda rezultāts | Objektu inicializācija un metožu izsaukšana |
also |
it |
Pats objekts | Papildu darbības (Side effects) |
apply |
this |
Pats objekts | Objektu īpašību konfigurācija |