IOS- 笔记2(闭包应用例)
2015-08-16 15:59
369 查看
<span style="font-size:10px;">@IBActionfunc operate(sender:UIButton) { let operation=sender.currentTitle! if !firstType{ enter() } switch operation{ case "✕" :performOperation(multiply)//这是最笨的方法 case"÷" :performOperation({(op1:Double,op2:Double)->Doubleinreturn op2/op1})//closure case"+" :performOperation({(op1,op2)inreturn op1+op2})//函数声明中有两个参数的类型,所以可以省略 //performOperation({(op1,op2) in op1+op2}) //因为函数声明中有声明返回值类型,可以省略return关键字 //performOperation({$0+$1}) //你也可以不给变量命名,swift自动命名为$0,$1,$2... //performOperation() {$0+$1} //如果你的函数是像这样有一个函数作为参数,且这个参数位于最后一个,那么可以将这个函数移到括号外面,其他参数还在括号里 //performOperation {$0+$1} //如果只有这一个参数,那么括号也不需要了 case"-" :performOperation {$1-$0} case"⌥" :performOperation {sqrt($0)} default: break } } func performOperation(operation:(Double,Double) ->Double){ ifoperandStack.count >=2 { displayValue=operation(operandStack.removeLast(),operandStack.removeLast()) enter() } } privatefunc performOperation(operation:Double ->Double){ ifoperandStack.count >=1 { displayValue=operation(operandStack.removeLast()) enter() } } func multiply(op1:Double,op2:Double)->Double{ return op1*op2 }</span>
相关文章推荐
- IOS View编程指南笔记
- IOS9应用间跳转
- iOS调用系统通讯录获取姓名电话号码(转)
- IOS地图定位——IOS8/IOS9新特性(未完待续,欢迎给出建议、错误随时更新)
- [转载] iPhone/iOS Core Animation开发总结(CALayer)
- iOS
- iOS概念入门学习-Foundation框架-NSString
- iOS TextView内容为空时设置按钮为不可用
- iOS之TabBar设置普通和选中状态图片
- iOS---代理设计模式
- 关于iOS中MVC和MVVM的一些思考
- iOS-英雄联盟人物展示
- iOS真机调试
- ios autoresizingMask属性的研究
- IOS拉伸之底盖设置
- iOS中nil,Nil,NULL的区别
- Mac&iOS Socket编程
- 中文 iOS/Mac 开发博客列表
- iOS应用中增加emoji表情输入功能
- IOS开发之----详解在IOS后台执行