Swift 中關(guān)鍵字typealias重命名與associatedtype關(guān)聯(lián)對象,在實際開發(fā)中比較常見。
typealias
typealias 是用來為已經(jīng)存在的類型重新定義名字的,通過命名,可以使代碼變得更加清晰。使用的語法也很簡單,使用 typealias 關(guān)鍵字像使用普通的賦值語句一樣,可以將某個已經(jīng)存在的類型賦值為新的名字。
typealias類似于Objective-C中的typedef,簡單的將block重命名如下:
typealias success = (_ data: String) -> Void
typealias fail = (_ error: String) -> Void
func fetchData(_ url: String, success: success, fail: fail) {
}
associatedtype
associatedtypen表示位置的數(shù)據(jù)類型,只是先定義一個名字,具體表示的類型要在最終使用的時候進(jìn)行賦值。在定義協(xié)議時,可以用associatedtype聲明一個或多個類型作為協(xié)議定義的一部分。
protocol NetworkRequest {
associatedtype DataType
func didReceiveData(_ data: DataType)
}
class ViewModel: NetworkRequest {
typealias DataType = String
func didReceiveData(_ data: DataType) {
}
}