Sobes.tech
Junior

Czym jest blok 'init' i jak jest używany w języku Kotlin?

sobes.tech AI

Odpowiedź od AI

Blok init jest inicjalizatorem klasy w Kotlinie. Jest wykonywany podczas tworzenia instancji klasy, po wywołaniu konstruktora (zarówno głównego, jak i drugorzędnego) i przed deklaracją właściwości klasy. Służy do wykonania kodu niezbędnego do poprawnej inicjalizacji obiektu.

Cechy:

  • W klasie może być kilka bloków init.
  • Bloki init są wykonywane w kolejności ich deklaracji w ciele klasy.
  • Zazwyczaj służą do sprawdzania parametrów wejściowych konstruktora, wykonywania obliczeń lub konfigurowania początkowego stanu obiektu.

Przykład:

class Person(name: String) {
    val formattedName: String

    init {
        // Sprawdzanie danych wejściowych
        require(name.isNotBlank()) { "Imię nie może być puste" }
        // Formatowanie danych do użytku wewnętrznego
        formattedName = name.trim().toUpperCase() 
    }

    init {
        // Dodatkowa logika inicjalizacji, jeśli jest potrzebna
        println("Inicjalizacja instancji Person z imieniem: $formattedName")
    }
}