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 typealias
er 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 typealias
som:
typealias navn = eksisterende type
I Swift kan du bruge typealias
til 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 Array
brug typealias
som:
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 Int
værdi og vender tilbage String
.
Du kan se brugen af (Int)->(String)
giver mindre mening for læseren. Du kan bruge typealias
til 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
.