Junior
Czym jest blok 'run' w Kotlin i jak go używać?
sobes.tech AI
Odpowiedź od AI
Blok run w Kotlinie to funkcja zakresu wbudowana w standardową bibliotekę Kotlin. Służy do:
- Wykonywania bloku kodu na obiekcie: Wywoływany jest na obiekcie i wykonuje lambda przekazaną jako argument. Wewnątrz lambdy obiekt jest dostępny jako
this. - Zwracania wyniku: Zwraca wynik ostatniego wyrażenia w lambdzie.
- Obiektów nullable: Przydatny do pracy z obiektami nullable, ponieważ przy użyciu operatora bezpiecznego wywołania
?., blokrunzostanie wykonany tylko wtedy, gdy obiekt nie jest null.
Główne cechy:
- Receptor (
this): Obiekt, na którym wywoływany jestrun, jest dostępny wewnątrz lambdy jakothis. - Wartość zwracana: Wynik ostatniego wyrażenia w lambdzie.
Przykłady użycia:
// Przykład 1: wykonanie kodu na obiekcie i zwrócenie wyniku
val length: Int = "some string".run {
// 'this' odnosi się do "some string"
println("Długość łańcucha: ${this.length}")
length // Zwraca długość łańcucha
}
// Przykład 2: praca z nullable-objektem
val nullableString: String? = "another string"
val upperCaseString: String? = nullableString?.run {
// Blok wykona się tylko jeśli nullableString nie jest null
toUpperCase() // Zwraca łańcuch w wielkich literach
}
val anotherNullableString: String? = null
val anotherUpperCaseString: String? = anotherNullableString?.run {
// Blok nie wykona się, run?. zwróci null
toUpperCase()
}
// Przykład 3: tworzenie i konfiguracja obiektu
val person = run {
val name = "Alice"
val age = 30
Person(name, age) // Zakłada się, że klasa Person istnieje
}