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) {
        
    }
    
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 参考资源《swifter》https://github.com/iOS-Swift-Developers/Swif...
    柯浩然阅读 1,482评论 0 6
  • Swift官方文档的词汇结构中, 有非常多的关键字, 它们被用于声明中、语句中、表达式中、类中、模式中, 还有以数...
    小宇宙_fly阅读 815评论 0 3
  • 136.泛型 泛型代码让你可以写出灵活,可重用的函数和类型,它们可以使用任何类型,受你定义的需求的约束。你可以写出...
    无沣阅读 1,535评论 0 4
  • 转载:http://www.jianshu.com/p/e70bd6645d88前言 熟悉Objective-C语...
    guoshengboy阅读 1,056评论 0 1
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 3,923评论 1 10