Swift Typealias: jak ich używać i dlaczego?

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.

Interesujące artykuły...