SWIFT——闭包表达式
2015-11-15 15:29
453 查看
闭包,可以理解为使用花括号括起来的一段代码。
下面的都属于闭包
全局函数
嵌套函数
闭包表达式
闭包表达式可以用来简化代码,使代码更简洁
下面用闭包表达式来简化
闭包表达式:
最终可以简化成为sort(&names,<)这里swift除了<号无法推断出来,其他的值都可以根据sort所比较的内容进行推断。
//挂尾闭包
闭包——值捕获
下面的都属于闭包
全局函数
嵌套函数
闭包表达式
闭包表达式可以用来简化代码,使代码更简洁
var names = ["Mike","John","Mary","Tom","Bill"] func sortFun(s1:String, s2:String) -> Bool { return s1 < s2 } sort(&names, sortFun) //sort函数后一参数表示排序的方法,采用了一个函数形式定义方法 println(names) //Bill, John, Mary, Mike, Tom
下面用闭包表达式来简化
闭包表达式:
/* { (parameters) -> returnType in statements } */
// 第1步 sort(&names, {(s1:String,s2:String) -> Bool in return s1 < s2}) //第2步 sort(&names,{(s1,s2) -> Bool in return s1 < s2}) //第3步 sort(&names,{(s1,s2) in return s1 < s2}) //第4步 sort(&names,{(s1,s2) in s1 < s2}) //第5步 sort(&names,{$0 < $1}) //第6步 sort(&names, <)
最终可以简化成为sort(&names,<)这里swift除了<号无法推断出来,其他的值都可以根据sort所比较的内容进行推断。
//挂尾闭包
let englishdict = [ 0:"zero" 1:"one" 2:"two" 3:"three" 4:"four" 5:"five" 6:"six" 7:"seven" 8:"eight" 9:"nine" ] let stru = [20,300,78,56,13425,7,17] println(stru.map() //map是一个transform从int到U的函数,后面加{}进行挂尾闭包表达式来控制希望怎么transform。{}内也是() -> xxx in statement的。 { (var charac) -> String in var outcharac = "" while charac > 0 { outcharac = englishdict[charac%10]! + " " + outcharac charac /= 10 } return outcharac } )//[two zero , three zero zero , seven eight , five six , one three four two five , seven , one seven ]
闭包——值捕获
func summ(#incre:Int) ->() -> Int { var summa = 0 func summar() -> Int { summa += incre return summa } return summar } let a = summ(incre: 8) println(a()) //8 println(a()) //16 println(a()) //24 let b = summ(incre: 10) println(b()) //10 println(b()) //20 println(a()) //32 let c = a println(c()) //40
相关文章推荐
- 16、使用swift语言开发iOS app
- swift Joke
- 用swift 重写 AgentsCatalog
- Swift(二十、扩展)
- Swift语言的扩展与协议(接口)
- Swift语言里的泛型与异常处理
- 14、swift语言中协议的使用
- Snail—Swift基础学习之函数
- swift是类型安全语言佐证
- swift-UINavigationController纯代码自定义导航控制器及底部工具栏的使用
- 13、swift语言中类的继承
- Snail—Swift基础学习之初识
- ios面向切面AOP(下) swift版本
- oc调用swift
- Swift快速入门
- swift数据类型
- swift中操作string
- 开始swift学习之路
- 图形的绘制(包括线段 圆形 矩形等) swift编写
- swift-教你如何实现导航上的UISearchController动画效果。