最近在研究闭包,所以做个总结.
一般的函数写法:
func funcMethod(para1 name1 : String,para2 name2:String) ->Int
{
return 10
}
调用
let funcValue : Int = self.funcMethod(para1: "11", para2: "22")
print(funcValue)
然后主要讲闭包(ob是创建的一个类)
重定义闭包作为参数和直接作为参数(有参无返回值)
重定义闭包作为参数
typealias fucBlock = (_ backMsg :String) ->()
func processWithBlock(cmdStr:String?,blockProperty:fucBlock){
blockProperty("backMsg---by block inside func11")
}
调用
ob.processWithBlock(cmdStr: "252622"){ (backMsg) in
print("processWithBlock--\(backMsg)")
}
----
闭包直接作为参数使用
//block返回值
func processWithBlock(cmdStr:String?,blockProperty:(_ backMsg :String) ->())->(String){
blockProperty("backMsg---by block inside func12")
return ""
}
重定义闭包作为参数和直接作为参数(有参有返回值)
func process4WithBlock(cmdStr:String?,blockProperty:(_ backMsg :String) ->(Int))->(String){
let jk : Int = blockProperty("backMsg---by block inside func13")
print("jk's value is + \(jk)")
return "process4WithBlock +\(String(describing: cmdStr))"
}
调用
let intValue : String = ob.process4WithBlock(cmdStr: "252") { (cmdStr : String) -> (Int) in
print(cmdStr)
return 9+9
}
print(intValue)
返回闭包
这个是swift新的特点,函数可以直接当参数使用,返回的闭包可以根据不同的输入值,返回不同的函数类型
有兴趣可以加群一起讨论:588123358
参考链接:
1.Swift 用Delegate和Block实现回调的Demo
2.窥探 Swift 之 函数与闭包的应用实例
网友评论