Swift Typealias: Hvordan bruger man dem, og hvorfor?

I denne artikel lærer du om typealias og dens anvendelsessager i Swift.

Et typealias giver dig mulighed for at angive et nyt navn til en eksisterende datatype i dit program. Når et typealias er erklæret, kan det aliaserede navn bruges i stedet for den eksisterende type i hele programmet.

Type alias opretter ikke nye typer. De giver simpelthen et nyt navn til en eksisterende type.

Hovedformålet med typealiaser at gøre vores kode mere læselig og tydeligere i sammenhæng for menneskelig forståelse.

Hvordan oprettes en typealias?

Det erklæres ved hjælp af nøgleordet typealiassom:

 typealias navn = eksisterende type

I Swift kan du bruge typealiastil de fleste typer. De kan være enten:

  • Indbyggede typer (for.eg: String, Int)
  • Brugerdefinerede typer (for.eg: klasse, struktur, enum)
  • Komplekse typer (f.eks. Lukninger)

Typealias til indbyggede typer

Du kan bruge typealias til alle indbyggede datatyper som String, Int, Float osv.

For eksempel:

 typealias StudentName = Streng

Ovenstående erklæring tillader, at StudentName bruges overalt i stedet for String. Så hvis du vil oprette en konstant af typen streng, men repræsenterer mere som studerendes navn. Du kan gøre som:

 lad navn: StudentName = "Jack"

Uden at bruge typealias skal du erklære konstant for typestrengen som:

 lad navn: String = "Jack"

Over begge eksempler skaber en konstant af typen String. Men når vi erklærer med typealias, bliver vores kode mere læsbar.

Typealias til brugerdefinerede typer

Der er mange tilfælde, hvor du har brug for at oprette din egen datatype. Antag at du vil oprette en type, der repræsenterer elev, du kan oprette den ved hjælp af en klasse som:

 class Student ( ) 

Nu kan en gruppe studerende repræsenteres som en matrix som:

 var studerende: Array = ()

Ovenstående erklæring kan gøres mere læselig ved at oprette din egen type til Arraybrug typealiassom:

 typealias Students = Array

Nu kan vi gøre vores kode mere læsbar som:

 var studerende: Studerende = ()

Typealias for komplekse typer

Lad os analysere endnu et eksempel. Antag, at vi har en metode, der tager en lukning som inputparameter.

Bare rolig, hvis du ikke kender til lukninger. Tænk bare på det som en særlig type funktion. Vi har forklaret det detaljeret i artiklen: Swift closures.

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

Ovenstående eksempel tager en lukning som input til someMethod. Lukningen tager en Intværdi og vender tilbage String.

Du kan se brugen af (Int)->(String)giver mindre mening for læseren. Du kan bruge typealiastil at angive et nyt navn til det:

 typealias CompletionHandler = (Int) -> (String)

Nu kan du omskrive metoden som:

 func someMethod(oncomp:CompletionHandler)( )

Vi kan se, at den samme kode ser mere klar ud og programmerervenlig med brugen af typealias.

Interessante artikler...