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 typealias
jest 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 typealias
jako:
typealias name = istniejący typ
W języku Swift można używać typealias
dla 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 Array
wykorzystania typealias
jako:
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 Int
wartość i zwraca String
.
Jak widać, użycie (Int)->(String)
znaku ma mniejszy sens dla czytelnika. Możesz użyć, typealias
aby 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
.