Sobes.tech
Junior

Czym jest 'alias' i jak go używać w Kotlin?

sobes.tech AI

Odpowiedź od AI

alias w Kotlin nie istnieje jako oddowe słowo kluczowe. Prawdopodobnie masz na myśli typealias.

typealias to sposób nadania alternatywnej nazwy istniejącemu typowi. Nie tworzy nowego typu, a jedynie jest pseudonimem dla już istniejącego.

Zalety korzystania z typealias:

  • Poprawa czytelności kodu, szczególnie przy pracy z złożonymi lub długimi typami (np. funkcje z wieloma parametrami lub generykami).
  • Uproszczenie refaktoryzacji. Jeśli typ bazowy się zmieni, wystarczy zmienić definicję typealias w jednym miejscu.

Użycie:

typealias jest deklarowany na poziomie górnym pliku.

// Przykład z funkcją
typealias ClickListener = (View, MotionEvent) -> Unit

// Przykład z generykiem
typealias StringList = List<String>

// Przykład z klasą
typealias UserName = String // Nie tworzy nowego typu String

// Użycie
fun setOnClickListener(listener: ClickListener) {
    // ...
}

val names: StringList = listOf("Alice", "Bob")

typealias może być używany do:

  • Klas
  • Interfejsów
  • Literali funkcji
  • Typów z generykami
  • Adnotacji

Ważne, aby pamiętać, że typealias to tylko pseudonim. Kompilator Kotlin traktuje go jak bazowy typ. W kodzie bajtowym generowany jest kod używający bazowego typu.

Przykład, który pokazuje, że to tylko pseudonim:

typealias MyInt = Int

fun receiveInt(i: Int) {
    println("Odebrano Int: $i")
}

fun main() {
    val num: MyInt = 10
    receiveInt(num) // Można przekazać MyInt tam, gdzie oczekiwany jest Int
}