Sobes.tech
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:

  1. 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.
  2. Zwracania wyniku: Zwraca wynik ostatniego wyrażenia w lambdzie.
  3. Obiektów nullable: Przydatny do pracy z obiektami nullable, ponieważ przy użyciu operatora bezpiecznego wywołania ?., blok run zostanie wykonany tylko wtedy, gdy obiekt nie jest null.

Główne cechy:

  • Receptor (this): Obiekt, na którym wywoływany jest run, jest dostępny wewnątrz lambdy jako this.
  • 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
}