Tässä artikkelissa opit typealioista ja niiden käyttötapauksista Swiftissä.
Tyyppialiaksen avulla voit antaa ohjelmalle uuden nimen olemassa olevalle tietotyypille. Kun tyyppialias on ilmoitettu, aliaksen nimeä voidaan käyttää koko ohjelmassa olemassa olevan tyypin sijasta.
Tyyppialias ei luo uusia tyyppejä. Ne antavat vain uuden nimen olemassa olevalle tyypille.
Päätavoitteena typealias
on tehdä koodistamme luettavampi ja selkeämpi kontekstissa ihmisen ymmärryksen kannalta.
Kuinka luoda typealiat?
Se ilmoitetaan käyttämällä avainsanaa typealias
seuraavasti:
typealias name = olemassa oleva tyyppi
Swiftissä voit käyttää typealias
useimpia tyyppejä. Ne voivat olla joko:
- Sisäänrakennetut tyypit (for.eg: String, Int)
- Käyttäjän määrittelemät tyypit (for.eg: luokka, struct, enum)
- Monimutkaiset tyypit (esim. Sulkimet)
Typealiat sisäänrakennetuille tyypeille
Voit käyttää typealioita kaikille sisäänrakennetuille tietotyypeille, kuten String, Int, Float jne.
Esimerkiksi:
typealias StudentName = Merkkijono
Yllä olevan ilmoituksen avulla StudentName-tiedostoa voidaan käyttää kaikkialla String
. Joten, jos haluat luoda vakion tyypin merkkijonon, mutta edustaa enemmän kuin opiskelijan nimi. Voit tehdä seuraavasti:
anna nimi: StudentName = "Jack"
Ilman typealioita sinun on ilmoitettava merkkijonon vakio seuraavasti:
anna nimi: String = "Jack"
Molempien esimerkkien yläpuolella luodaan tyypin vakio String
. Mutta kun ilmoitamme typealias
, koodistamme tulee helpommin luettavissa.
Typealiat käyttäjän määrittelemille tyypeille
Useissa tapauksissa sinun on luotava oma tietotyyppi. Oletetaan, että haluat luoda tyypin, joka edustaa opiskelijaa, voit luoda sen luokan avulla seuraavasti:
class Student ( )
Nyt joukko opiskelijoita voidaan edustaa ryhmänä seuraavasti:
vaihtelevat opiskelijat: Taulukko = ()
Yllä oleva ilmoitus voidaan tehdä helpommin luettavaksi luomalla oma tyyppisi Array
käytettäväksi typealias
nimellä:
typealias Opiskelijat = Taulukko
Nyt voimme tehdä koodistamme helpommin luettavissa:
var opiskelijat: Opiskelijat = ()
Typealiat monimutkaisille tyypeille
Analysoidaan vielä yksi esimerkki. Oletetaan, että meillä on menetelmä, joka pitää sulkun tuloparametrina.
Älä huoli, jos et tiedä sulkemisista. Ajattele sitä vain erityistyyppisenä toimintona. Olemme selittäneet sen yksityiskohtaisesti artikkelissa: Nopeat sulkimet.
func someMethod(oncomp:(Int)->(String))( )
Yllä olevassa esimerkissä suljin syötetään someMethod
. Sulkeminen ottaa Int
arvon ja palaa String
.
Voit nähdä, että käytön (Int)->(String)
merkitys lukijalle on vähemmän järkevää. Voit typealias
antaa sille uuden nimen:
typealias CompletionHandler = (Int) -> (merkkijono)
Nyt voit kirjoittaa menetelmän uudestaan:
func someMethod(oncomp:CompletionHandler)( )
Voimme nähdä, että sama koodi näyttää selkeämmältä ja ohjelmoijaystävällisemmältä typealias
.