美文网首页
Swift 关键字(typealias、associatedTy

Swift 关键字(typealias、associatedTy

作者: sampson0115 | 来源:发表于2021-10-13 12:59 被阅读0次

    typealias

    使用typealias为常用数据类型起一个别名,一方面更容易通过别名理解该类型的用途,另一方面还可以减少日常开发的代码量。

    // 网络请求常用回调闭包
    typealias success = (_ data: String) -> Void
    typealias fail = (_ error: String) -> Void
    
    func fetchData(_ url: String, success: success, fail: fail) {
    }
    
    // 用&连接多个协议
    typealias UITableViewCommonProtocol = UITableViewDelegate & UITableViewDataSource
    
    class TestDelegate:UITableViewCommonProtocol{
        func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            return 0
        }
        func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
            let cell = tableView.dequeueReusableCell(withIdentifier: "cell")
            return cell
        }
    }
    

    associatedType

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

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

    相关文章

      网友评论

          本文标题:Swift 关键字(typealias、associatedTy

          本文链接:https://www.haomeiwen.com/subject/azwsoltx.html