微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift 泛型和闭包结合使用

通常在Swift中定义一个闭包来使用

typealias Closure= (Any?) -> ()

var tempClosure :Closure?

/// 定义一个方法直接调用
func closure(_ closure:@escaping closure) {
        self.closure = closure
}

 

 上面就是我们经常使用闭包的方法,这个方法的弊端就是,在项目工程中typealias满天飞,到处都是定义的闭包,这个时候结合泛型对闭包做如下的修改

public typealias Genericclosure<T> = (T) -> ()

 

这样定义之后我们在需要使用的时候就可以随意的定义闭包的参数类型了

var stringClosure:Genericclosure<String>?
var stringClosure:Genericclosure<(title:String,model:Any)>?
var voidClosure:Genericclosure<()?>

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐