在本文中,您將學習Swift中的類型別名及其用例。
類型別名允許您為程序中的現有數據類型提供新名稱。聲明類型別名后,可以在整個程序中使用別名代替現有類型。
類型別名不會創(chuàng)建新類型。它們只是為現有類型提供一個新名稱。
typealias 的主要目的是使我們的代碼更具可讀性,并且在上下文中更清晰易懂,以供人類理解。
使用 typealias 關鍵字聲明為:
typealias name = existing type
在Swift中,大多數類型都可以使用typealias。它們可以是:
內置類型(例如:String, Int)
用戶定義的類型(例如:類,結構,枚舉)
復雜類型(例如:閉包)
您可以將typealias用于所有內置數據類型,如String,Int,Float等。
例如:
typealias StudentName = String
以上聲明允許
let name:StudentName = "Jack"
在不使用 typealias 的情況下,應將string類型的常量聲明為:
let name:String = "Jack"
在以上兩個示例中,創(chuàng)建一個String類型常量。但是,使用 typealias 進行聲明,我們的代碼將更具可讀性。
在許多情況下,您需要創(chuàng)建自己的數據類型。假設您要創(chuàng)建一個表示Student的類型,則可以使用以下類來創(chuàng)建它:
class Student { }
現在,一組學生可以表示為數組:
var students:Array<Student> = []
通過使用 typealias 為Array <Student>創(chuàng)建您自己的類型,可以使上述聲明更具可讀性:
typealias Students = Array<Student>
現在,我們可以使代碼更具可讀性:
var students:Students = []
讓我們再分析一個實例。假設我們有一個將閉包作為輸入參數的方法。
如果您不了解閉包,請不要擔心。只需將其視為一種特殊的函數即可。
func someMethod(oncomp:(Int)->(String)){ }
上面的示例將閉包作為someMethod的輸入。 該閉包采用Int值并返回String。
您可以看到 (Int)-> (String) 的使用對于開發(fā)人員來說沒有什么意義。你可以使用 typealias 為它提供一個新名稱:
typealias CompletionHandler = (Int)->(String)
現在,您可以將方法重寫為:
func someMethod(oncomp:CompletionHandler){ }
我們可以看到,使用typealias,相同的代碼看起來更加清晰并且對程序員友好。