在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
函数作参数,示例为传入一个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) 而函数作参数时必须不能带参数名 demo(str:String,addPrefix:(String)->String)
(1)在声明时,如果是函数,是不需要带参数名的;如果是闭包,是必须带参数名的。 (2)在调用时,如果是函数,第一个参数是没有参数名的;如果是闭包,第一个参数是必须带参数名的。 |
请发表评论