Swift 函数做参数和闭包做参数的一个细节差别
2015-12-11 17:35
417 查看
函数作参数,示例为传入一个String和一个添加前缀的函数,返回一个添加完前缀的String:
闭包做参数,示例为传入一个闭包,:
可以看出两者区别在,闭包做参数时声明的闭包结构是必须带一个外部参数名的
而函数作参数时必须不能带参数名
所以如果声明的变量,是个函数的结构,其中带有参数名,说明这是一个闭包。
func demo(str:String,addPrefix:(String)->String)->String{ return addPrefix(str) } func addPrefix(str2:String)->String{ return "prefix"+str2 } print(demo("123123", addPrefix: addPrefix))
闭包做参数,示例为传入一个闭包,:
func processWithBlock(cmdStr:String,blockProperty:(backMsg:String) ->String)->String{ var str=blockProperty(backMsg :"backMsg---by block inside func") return "" }
可以看出两者区别在,闭包做参数时声明的闭包结构是必须带一个外部参数名的
processWithBlock(cmdStr:String,blockProperty:(backMsg:String) ->String) 第二个参数是名为blockProperty的闭包,闭包的结构为 (backMsg:String) ->String
而函数作参数时必须不能带参数名
demo(str:String,addPrefix:(String)->String) 第二个参数是名为addPrefix的函数,函数的结构为 (String)->String
所以如果声明的变量,是个函数的结构,其中带有参数名,说明这是一个闭包。
相关文章推荐
- swift ! 和 ? 的学习
- Swift语法之 ---- ?和!区别
- Swift: 深入理解Core Animation(一)
- swift po 实现动态按钮2
- [ios][swift]Swift - 常用文件目录路径获取(Home目录,文档目录,缓存目录等)
- Swift系列之闭包(Closure)
- swift 全局常量 && 全局变量的写法
- Swift - 修改导航栏“返回”按钮文字,图标
- swift pop实现动感按钮动画
- iOS开发:Swift多线程NSOperation的使用
- Swift 枚举简单使用
- swift -- 系统学习资料
- Swift 闭包的简单学习
- swift -pop的简单动画
- Swift 吐槽下Swift里一个逼死强迫症的语法:中缀语法
- iOS开发:Swift多线程GCD的使用
- Swift 用Delegate和Block实现回调的Demo
- iOS开发:Swift多线程NSThread的使用
- swift - tableView数据向上收缩动画
- swift - 歌曲列表动画