亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

Swift 類型別名(Typealias)

在本文中,您將學(xué)習(xí)Swift中的類型別名及其用例。

類型別名允許您為程序中的現(xiàn)有數(shù)據(jù)類型提供新名稱。聲明類型別名后,可以在整個(gè)程序中使用別名代替現(xiàn)有類型。

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

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

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

使用 typealias 關(guān)鍵字聲明為:

typealias name = existing type

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

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

  • 用戶定義的類型(例如:類,結(jié)構(gòu),枚舉)

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

內(nèi)置類型的Typealias

您可以將typealias用于所有內(nèi)置數(shù)據(jù)類型,如String,Int,F(xiàn)loat等。

例如:

typealias StudentName = String

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

let name:StudentName = "Jack"

在不使用 typealias 的情況下,應(yīng)將string類型的常量聲明為:

let name:String = "Jack"

在以上兩個(gè)示例中,創(chuàng)建一個(gè)String類型常量。但是,使用 typealias 進(jìn)行聲明,我們的代碼將更具可讀性。

用戶定義類型的類型別名

在許多情況下,您需要?jiǎng)?chuàng)建自己的數(shù)據(jù)類型。假設(shè)您要?jiǎng)?chuàng)建一個(gè)表示Student的類型,則可以使用以下類來(lái)創(chuàng)建它:

class Student {

}

現(xiàn)在,一組學(xué)生可以表示為數(shù)組:

var students:Array<Student> = []

通過(guò)使用 typealias 為Array <Student>創(chuàng)建您自己的類型,可以使上述聲明更具可讀性:

typealias Students = Array<Student>

現(xiàn)在,我們可以使代碼更具可讀性:

var students:Students = []

復(fù)雜類型的Typealias

讓我們?cè)俜治鲆粋€(gè)實(shí)例。假設(shè)我們有一個(gè)將閉包作為輸入?yún)?shù)的方法。

如果您不了解閉包,請(qǐng)不要擔(dān)心。只需將其視為一種特殊的函數(shù)即可。

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

}

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

您可以看到 (Int)-> (String) 的使用對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)沒(méi)有什么意義。你可以使用 typealias 為它提供一個(gè)新名稱:

typealias CompletionHandler = (Int)->(String)

現(xiàn)在,您可以將方法重寫為:

func someMethod(oncomp:CompletionHandler){

}

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