Snabba typealias: Hur man använder dem och varför?

I den här artikeln lär du dig om typealias och dess användningsfall i Swift.

Ett typalias låter dig ange ett nytt namn för en befintlig datatyp i ditt program. Efter att ett typalias har förklarats kan det aliaserade namnet användas istället för den befintliga typen i hela programmet.

Skriv alias skapar inte nya typer. De ger helt enkelt ett nytt namn till en befintlig typ.

Huvudsyftet med typealiasär att göra vår kod mer läsbar och tydligare i sammanhang för mänsklig förståelse.

Hur skapar jag en typealias?

Det förklaras med hjälp av nyckelordet typealiassom:

 typealias namn = befintlig typ

I Swift kan du använda typealiasför de flesta typer. De kan vara antingen:

  • Inbyggda typer (för.eg: String, Int)
  • Användardefinierade typer (for.eg: class, struct, enum)
  • Komplexa typer (för t.ex. stängningar)

Typealias för inbyggda typer

Du kan använda typealias för alla inbyggda datatyper som String, Int, Float etc.

Till exempel:

 typealias Studentnamn = Sträng

Ovanstående deklaration tillåter att Studentnamn används överallt istället för String. Så om du vill skapa en konstant typsträng men representerar mer som studentnamn. Du kan göra som:

 låt namn: StudentName = "Jack"

Utan att använda typealias bör du förklara typ av typsträng som:

 låt namn: String = "Jack"

Ovanför båda exemplen skapar en konstant typ String. Men när typealiasvi förklarar med blir vår kod mer läsbar.

Typealias för användardefinierade typer

Det finns många fall när du behöver skapa din egen datatyp. Antag att du vill skapa en typ som representerar student, du kan skapa den med en klass som:

 class Student ( ) 

Nu kan en grupp studenter representeras som en matris som:

 var studenter: Array = ()

Ovanstående deklaration kan göras mer läsbar genom att skapa din egen typ för att Arrayanvända typealiassom:

 typealias Students = Array

Nu kan vi göra vår kod mer läsbar som:

 var studenter: Studenter = ()

Typealias för komplexa typer

Låt oss analysera ytterligare ett exempel. Antag att vi har en metod som tar en stängning som inmatningsparameter.

Oroa dig inte om du inte känner till stängningar. Tänk bara på det som en speciell typ av funktion. Vi har förklarat det detaljerat i artikeln: Snabba stängningar.

 func someMethod(oncomp:(Int)->(String))( ) 

Ovanstående exempel tar en avslutning som en ingång till someMethod. Avslutningen tar ett Intvärde och returnerar String.

Du kan se att användningen av (Int)->(String)är mindre vettigt för läsaren. Du kan använda för typealiasatt ange ett nytt namn för det:

 typealias CompletionHandler = (Int) -> (String)

Nu kan du skriva om metoden som:

 func someMethod(oncomp:CompletionHandler)( )

Vi kan se att samma kod ser tydligare ut och programmerarvänlig med användningen av typealias.

Intressanta artiklar...