根据上一节的例子,我们讲解此次闭包的编写

上节例子:

【格式】

{(参数名称:参数类型)->返回类型 in 闭包函数体}

【举例】


【闭包函数简化】

1.由于AutoAdd函数中addFunc这个参数的传入参数类型和返回类型为Int,那么swift会推断编写的闭包函数也是一样,所以此处可以将参数类型和返回值类型简化掉

[objc] view plain copy

AutoAdd(&c, addFunc:{
<span style="white-space:pre">    </span>(var num) in
<span style="white-space:pre">    </span>return num + 3
})

2.由于AutoAdd函数中addFunc这个参数的传入参数数目为一个,那么swift会自动为这个参数命名为“$0”,所以我们可以将参数部分简化掉

[objc] view plain copy

AutoAdd(&c, addFunc:{
<span>    </span>return $0 + 3
})

3.由于返回类型已知为Int,那么将return关键字简化掉

[objc] view plain copy

AutoAdd(&c, addFunc:{ $0 + 3 })

【总结】

闭包函数大大减化了函数的编写,使得开发人员工作更快,节省敲代码的时间。

大家加油!继续支持swift语言!

wift学习笔记之闭包相关推荐

  1. sizzle.js学习笔记利用闭包模拟实现数据结构:字典(Map)

    sizzle.js学习笔记利用闭包模拟实现数据结构:字典(Map) 这几天学习和查看了jQuery和Property这两个很流行的前端库的御用选择器组件Sizzle.js的源代码,收获还是相对多的!之 ...

  2. Python学习笔记:闭包与作用域

    文章目录 零.学习目标 一.闭包(Enclosure) (一)函数引用 1.引用变量 2.引用函数 (二)闭包为何物 1.闭包概述 2.闭包满足三个条件 3.案例演示闭包 二.命名空间(Namespa ...

  3. lua学习笔记之闭包

    Lua中的函数是具有适当词法范围的一级值. lua作为一级值意味着函数与数字和字符串一样具有值,可以将函数存储在变量或者表中,将函数作为参数传递给其它函数,也可以作为结果返回函数. lua具有词法范围 ...

  4. 初探swift语言的学习笔记三(闭包-匿名函数)

    作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/29353019 转载请注明出处 如果觉得文章对你有所帮助,请通过留言 ...

  5. Python学习笔记: 闭包

    闭包的基本定义 在计算机科学中,闭包(英语:Closure),又称词法闭包(Lexical Closure)或函数闭包(function closures),是引用了自由变量的函数.这个被引用的自由变 ...

  6. go 变量在其中一个函数中赋值 另一个函数_go 学习笔记之仅仅需要一个示例就能讲清楚什么闭包...

    本篇文章是 Go 语言学习笔记之函数式编程系列文章的第二篇,上一篇介绍了函数基础,这一篇文章重点介绍函数的重要应用之一: 闭包 空谈误国,实干兴邦,以具体代码示例为基础讲解什么是闭包以及为什么需要闭包 ...

  7. js学习笔记(执行上下文、闭包、this部分)

    1.函数的准备工作 函数在执行会进行一些准备工作,如创建一个"执行上下文"环境:执行上下文可以理解为当前代码的执行环境,它会形成一个作用域: 每个碰到可执行代码的时候都会进行这些& ...

  8. JavaScript闭包学习笔记

    闭包(closure)是JavaScript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 下面就是我的学习笔记,对于JavaScript初学者应该是很有用的. 一.变量的作用域 要理解 ...

  9. go 学习笔记之仅仅需要一个示例就能讲清楚什么闭包

    本篇文章是 Go 语言学习笔记之函数式编程系列文章的第二篇,上一篇介绍了函数基础,这一篇文章重点介绍函数的重要应用之一: 闭包 空谈误国,实干兴邦,以具体代码示例为基础讲解什么是闭包以及为什么需要闭包 ...

最新文章

  1. GridView中HyperLinkField的链接使用JavaScript问题
  2. mysql 定义存储过程_mysql——定义——存储过程和函数——概念
  3. shopping car 2.0
  4. vscode配置问题
  5. YbtOJ-方格填写【插头dp】
  6. CoreAnimation编程指南(一)概念
  7. linux如何停止死循环脚本,Linux Shell教程(一)
  8. 【iOS】Swift3中NSFetchRequest报错:Generic parameter 'ResultType' could not be inferred
  9. ubuntu安装ROS教程
  10. 《软件随想录》读书笔记
  11. wordpress添加备案链接 亲测无误
  12. mysql 内联 外联_sql中的内联和外联(简单用法)
  13. lua工具库penlight--06数据(二)
  14. linux内核irq,linux kernel的中断子系统之(四):High level irq event handler
  15. 更改适配器设置无法和计算机连接,win10系统更改适配器没有无线网络连接的设置技巧...
  16. 相差天数时分秒_PHP 小方法之 计算两个时间戳之间相差的日时分秒
  17. 云服务器aip,云服务器API接口-云服务器的使用
  18. 【无标题】60秒倒计时
  19. 迭代法求一元三次方程
  20. 毫秒转换为天、小时、分、秒

热门文章

  1. java font 字体 隶书_在font标记对,将字体设置成“隶书”,设置属性( )=隶书。...
  2. 5天假期回家看望老妈--2019 充电宝
  3. java中国象棋棋盘放置棋子,JAVA简易文字版中国象棋
  4. 笔记本电脑电池无法充电_我可以控制笔记本电脑的充电周期以延长电池寿命吗?...
  5. Matlab的imfilter函数用法
  6. 最优爱Zuiui.com全球优秀WEB站点聚合。
  7. Android定位--GPS定位与LBS基站定位
  8. 处理实体与Map<String,Object>、json之间的转换
  9. 浏览器解析问题造成的存储型跨站漏洞(DVBBS为例)
  10. 计算机课程教材技校,如何编写技工学校计算机程序设计课程校本教材