V tomto článku se dozvíte o typealias a jeho případech použití v Swift.
Alias typu vám umožňuje zadat nový název pro existující datový typ do vašeho programu. Po deklaraci aliasu typu lze použít aliasovaný název namísto existujícího typu v celém programu.
Alias typu nevytvářejte nové typy. Jednoduše poskytují nový název existujícímu typu.
Hlavním účelem typealias
je zajistit, aby byl náš kód čitelnější a jasnější v kontextu lidského porozumění.
Jak vytvořit typealias?
Deklaruje se pomocí klíčového slova typealias
jako:
typealias name = existující typ
Ve Swift můžete použít typealias
pro většinu typů. Mohou to být buď:
- Vestavěné typy (například: String, Int)
- Typy definované uživatelem (například: třída, struktura, výčet)
- Složité typy (např. Uzávěry)
Typické pro vestavěné typy
Typealias můžete použít pro všechny vestavěné datové typy jako String, Int, Float atd.
Například:
typealias StudentName = Řetězec
Výše uvedené prohlášení umožňuje StudentName používat všude místo String
. Pokud tedy chcete vytvořit konstantu typu řetězec, ale představuje spíše jméno studenta. Můžete udělat jako:
let name: StudentName = "Jack"
Bez použití typealias byste měli deklarovat konstantu typu string jako:
let name: String = "Jack"
Nad oběma příklady se vytváří konstanta typu String
. Ale deklarovat s typealias
, náš kód bude čitelnější.
Typealias pro uživatelem definované typy
Existuje mnoho případů, kdy potřebujete vytvořit svůj vlastní datový typ. Předpokládejme, že chcete vytvořit typ, který představuje Studenta, můžete jej vytvořit pomocí třídy jako:
class Student ( )
Nyní může být skupina studentů reprezentována jako pole jako:
var studenti: Pole = ()
Výše uvedená deklarace může být čitelnější vytvořením vlastního typu pro Array
použití typealias
jako:
typealias Students = Array
Nyní můžeme náš kód udělat čitelnějším jako:
var students: Students = ()
Typealias pro složité typy
Pojďme analyzovat ještě jeden příklad. Předpokládejme, že máme metodu, která jako vstupní parametr přijímá uzávěr.
Nebojte se, pokud nevíte o uzávěrách. Představte si to jako speciální typ funkce. Podrobně jsme to vysvětlili v článku: Uzávěry Swift.
func someMethod(oncomp:(Int)->(String))( )
Výše uvedený příklad má uzavření jako vstup do someMethod
. Uzávěr má Int
hodnotu a vrátí se String
.
Můžete vidět, že použití (Int)->(String)
má pro čtenáře menší smysl. Můžete použít typealias
k zadání nového názvu:
typealias CompletionHandler = (Int) -> (řetězec)
Nyní můžete metodu přepsat jako:
func someMethod(oncomp:CompletionHandler)( )
Vidíme, že stejný kód vypadá jasněji a programátorsky přívětivější při použití typealias
.