Swift 類型別名(Typealias)

在本文中,您將學習Swift中的類型別名及其用例。

類型別名允許您為程序中的現有數據類型提供新名稱。聲明類型別名后,可以在整個程序中使用別名代替現有類型。

類型別名不會創(chuàng)建新類型。它們只是為現有類型提供一個新名稱。

typealias 的主要目的是使我們的代碼更具可讀性,并且在上下文中更清晰易懂,以供人類理解。

如何創(chuàng)建類型別名?

使用 typealias 關鍵字聲明為:

typealias name = existing type

在Swift中,大多數類型都可以使用typealias。它們可以是:

  • 內置類型(例如:String, Int)

  • 用戶定義的類型(例如:類,結構,枚舉)

  • 復雜類型(例如:閉包)

內置類型的Typealias

您可以將typealias用于所有內置數據類型,如String,Int,Float等。

例如:

typealias StudentName = String

以上聲明允許學生姓名在各處代替String。因此,如果您想創(chuàng)建一個字符串類型的常量,但是卻更像是學生姓名。您可以這樣做:

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 = []

復雜類型的Typealias

讓我們再分析一個實例。假設我們有一個將閉包作為輸入參數的方法。

如果您不了解閉包,請不要擔心。只需將其視為一種特殊的函數即可。

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

}

上面的示例將閉包作為someMethod的輸入。 該閉包采用Int值并返回String。

您可以看到 (Int)-> (String) 的使用對于開發(fā)人員來說沒有什么意義。你可以使用 typealias 為它提供一個新名稱:

typealias CompletionHandler = (Int)->(String)

現在,您可以將方法重寫為:

func someMethod(oncomp:CompletionHandler){

}

我們可以看到,使用typealias,相同的代碼看起來更加清晰并且對程序員友好。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清