标签:
闭包,可以理解为使用花括号括起来的一段代码。
下面的都属于闭包
全局函数
嵌套函数
闭包表达式
闭包表达式可以用来简化代码,使代码更简洁
1 var names = ["Mike","John","Mary","Tom","Bill"] 2 3 func sortFun(s1:String, s2:String) -> Bool 4 { 5 return s1 < s2 6 } 7 8 sort(&names, sortFun) //sort函数后一参数表示排序的方法,采用了一个函数形式定义方法 9 println(names) //Bill, John, Mary, Mike, Tom
下面用闭包表达式来简化
闭包表达式:
1 /* 2 { 3 (parameters) -> returnType in statements 4 } 5 */
1 // 第1步 2 3 sort(&names, {(s1:String,s2:String) -> Bool in return s1 < s2}) 4 5 //第2步 6 7 sort(&names,{(s1,s2) -> Bool in return s1 < s2}) 8 9 //第3步 10 11 sort(&names,{(s1,s2) in return s1 < s2}) 12 13 //第4步 14 15 sort(&names,{(s1,s2) in s1 < s2}) 16 17 //第5步 18 19 sort(&names,{$0 < $1}) 20 21 //第6步 22 23 sort(&names, <)
最终可以简化成为sort(&names,<)这里swift除了<号无法推断出来,其他的值都可以根据sort所比较的内容进行推断。
标签:
原文地址:http://www.cnblogs.com/zhuzhubjtu/p/4966659.html