Swift 5.0-typealias与associatedtype

Swift 中关键字typealias重命名与associatedtype关联对象,在实际开发中比较常见。

typealias

typealias 是用来为已经存在的类型重新定义名字的,通过命名,可以使代码变得更加清晰。使用的语法也很简单,使用 typealias 关键字像使用普通的赋值语句一样,可以将某个已经存在的类型赋值为新的名字。

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表示位置的数据类型,只是先定义一个名字,具体表示的类型要在最终使用的时候进行赋值。在定义协议时,可以用associatedtype声明一个或多个类型作为协议定义的一部分。

protocol NetworkRequest {
    associatedtype DataType
    func didReceiveData(_ data: DataType)
}

class ViewModel: NetworkRequest {
    
    typealias DataType = String
    
    func didReceiveData(_ data: DataType) {
        
    }
    
}

你可能感兴趣的:(Swift 5.0-typealias与associatedtype)