标签:swift swift教程 swift视频 ios ios8
Swift中的闭包表达式很灵活,其标准语法格式如下:func calculate(opr :String)-> (Int,Int)-> Int { var result : (Int,Int)-> Int switch (opr) { case "+" : result = {a, b in return a + b } ① default: result = {a, b in return a - b } ② } return result; } let f1:(Int,Int)-> Int = calculate("+") println("10 + 5 = \(f1(10,5))") let f2:(Int,Int)-> Int = calculate("-") println("10 + 5 = \(f2(10,5))")
func calculate(opr :String)-> (Int,Int)-> Int { var result : (Int,Int)-> Int switch (opr) { case "+" : result = {a, b in return a + b } ① default: result = {a, b in return a - b } ② } return result; }
func calculate(opr :String)-> (Int,Int)-> Int { var result : (Int,Int)-> Int switch (opr) { case "+" : result = {$0 + $1} ① default: result = {$0 - $1} ② } return result; } let f1:(Int,Int)-> Int = calculate("+") println("10 + 5 = \(f1(10,5))") let f2:(Int,Int)-> Int = calculate("-") println("10 + 5 = \(f2(10,5))")
let c1:Int = {(a:Int, b:Int) -> Int in return a + b }(10,5) ① println("10 + 5 = \(c1)") let c2:Int = {(a:Int, b:Int) -> Int in return a - b }(10,5) ② println("10 - 5 = \(c2)")
上述代码有两个表达式,第①行代码是给c1赋值,后面是一个闭包表达式。但是闭包表达式不能直接赋值给c1,因为c1是Int类型,需要闭包的返回值。这就需要在闭包结尾的大括号后面接一对小括号(10,5),通过小括号(10,5)为闭包传递参数。第②行代码也是如此。通过这种方法可以为变量和常量直接赋值,在有些场景下使用非常方便。
欢迎关注智捷iOS课堂微信公共平台
标签:swift swift教程 swift视频 ios ios8
原文地址:http://blog.csdn.net/tonny_guan/article/details/39058571