W tym artykule dowiesz się o aliasach typu i ich przypadkach użycia w języku Swift.
Alias typu umożliwia nadanie nowej nazwy istniejącemu typowi danych w programie. Po zadeklarowaniu aliasu typu w całym programie można użyć nazwy aliasu zamiast istniejącego typu.
Aliasy typów nie tworzą nowych typów. Po prostu podają nową nazwę istniejącemu typowi.
Głównym celem typealiasjest uczynienie naszego kodu bardziej czytelnym i jaśniejszym w kontekście dla ludzkiego zrozumienia.
Jak utworzyć alias typu?
Jest deklarowana przy użyciu słowa kluczowego typealiasjako:
typealias name = istniejący typ
W języku Swift można używać typealiasdla większości typów. Mogą to być:
- Wbudowane typy (for.eg: String, Int)
- Typy zdefiniowane przez użytkownika (for.eg: class, struct, enum)
- Złożone typy (np. Zamknięcia)
Aliasy typów dla typów wbudowanych
Możesz użyć aliasów typów dla wszystkich wbudowanych typów danych, takich jak String, Int, Float itp.
Na przykład:
typealias StudentName = String
Powyższa deklaracja umożliwia używanie StudentName wszędzie zamiast String. Tak więc, jeśli chcesz utworzyć stałą typu string, ale reprezentuje bardziej jak imię i nazwisko ucznia. Możesz robić jako:
let name: StudentName = "Jack"
Bez używania aliasów typu należy zadeklarować stałą typu string jako:
let name: String = "Jack"
Powyżej obu przykładów tworzy stałą typu String. Ale deklarując za pomocą typealias, nasz kod staje się bardziej czytelny.
Aliasy typów dla typów zdefiniowanych przez użytkownika
Istnieje wiele przypadków, w których musisz utworzyć własny typ danych. Załóżmy, że chcesz utworzyć typ reprezentujący ucznia, możesz go utworzyć za pomocą klasy jako:
class Student ( )
Teraz grupę uczniów można przedstawić jako tablicę jako:
var studentów: Array = ()
Powyższą deklarację można uczynić bardziej czytelną, tworząc własny typ do Arraywykorzystania typealiasjako:
typealias Students = Array
Teraz możemy uczynić nasz kod bardziej czytelnym jako:
var studenci: Studenci = ()
Aliasy typów dla typów złożonych
Przeanalizujmy jeszcze jeden przykład. Załóżmy, że mamy metodę, która przyjmuje zamknięcie jako parametr wejściowy.
Nie martw się, jeśli nie wiesz o zamknięciach. Pomyśl o tym jako o specjalnym typie funkcji. Wyjaśniliśmy to szczegółowo w artykule: Szybkie zamknięcia.
func someMethod(oncomp:(Int)->(String))( )
Powyższy przykład przyjmuje zamknięcie jako dane wejściowe do someMethod. Zamknięcie przyjmuje Intwartość i zwraca String.
Jak widać, użycie (Int)->(String)znaku ma mniejszy sens dla czytelnika. Możesz użyć, typealiasaby nadać mu nową nazwę:
typealias CompletionHandler = (Int) -> (String)
Teraz możesz przepisać metodę jako:
func someMethod(oncomp:CompletionHandler)( )
Widzimy, że ten sam kod wygląda bardziej przejrzyście i przyjaźnie dla programisty przy użyciu typealias.








