用现实生活中的示例来说明闭包

现在,让我们来考虑放在信封里的信纸。信纸里可能写着“x=5, y=10”等等一些内容。对于一个闭包(closure),信纸上可能写着一系列的指令。你可以把信封交给其他人,这个人可能会按照信纸上面的指令来做决定,当然,他也可能同样会把这个信封交给其他人。每次根据不同的上下文,他们可能多次的根据信纸的指令做出决定。比如:

信纸上可能写着”给你心里想着的人写一封信“,然后他会在他的地址簿里寻找他心里想着的一系列的人,最后,根据上面的指令,一个一个的给他们写信。

闭包(closure)等同于上面真实生活的示例,可以表示成如下的形式:

Closure envelope = { person -> new Letter(person).send() }
addressBook.each (envelope)

Grails(Java笨狗)系列-更好的理解闭包(closure)相关推荐

  1. Groovy(Java笨狗)系列---Getting Started(三)

    (一).Setting up your Java environment(设置你的Java环境). Groovy需要Java,建议JDK1.4或者以上.假如你还没有安装Java,请按照下面的步骤来安装 ...

  2. Groovy(Java笨狗)系列--datatypes

    Java's type system-primitives and references(原始值和引用) 在Groovy中,一切都是对象. Java 区分primitive types (比如:int ...

  3. Groovy on Grails(Java笨狗)系列---前言(二)

    本系列的教材是由本人对官方文档的翻译,也算一个对学习的总结,对于原文档的所有权归原作者,译文为共享资源,但不能用于商业目的. 因为groovy,grails的语法发生了很多变化,可能现在互联网上的资料 ...

  4. Groovy on Grails(Java笨狗)系列---开篇(一)

    Groovy 和Grails就不用介绍了 这两个系列主要是写给喜欢Groovy和Grails的朋友们 个人感觉 Groovy on Grails会在以后使我们对现在编程思想的改变,起码对于我自己来说是 ...

  5. Groovy(Java笨狗)系列---断言

    假如你使用过JDK1.4或者更高版本,你一定熟悉assertions(断言)..通常,他会在你的代码中测试你的逻辑是否矛盾和正确. 接下来我们通过实例来学习Groovy中的断言,在学习之前,请务必记住 ...

  6. Groovy(Java笨狗)系列--Class,Scripts

    Class是OOP编程的基础. 现在我们开始Class. 下面我们定义一个简单的Groovy类: class Book { private String title Book (String theT ...

  7. Groovy(Java笨狗)系列-Working with closures(1)

    翻译自<Groovy in action>,如有不准确之处,希望指教! closures(闭包)很重要,非常的 重要!!!可以被认为是Groovy中一个非常有用的特性.同时,在你没有完全了 ...

  8. Groovy(Java笨狗)系列--fields and local variables

    使用最简单的术语,a variable(变量): 变量名引用的值关联着物理内存的某个位置.和Java一样,Groovy拥有 local variables(本地变量),fields(字段):local ...

  9. Java笨狗的C/C++

    这年头C/C++还是王道啊 记录下C/C++的点滴,下面的图虽然简单,但是真的会吗??????? C++: C: 不要忽略最简单的东西,可能它真是你不知道的!!!!

最新文章

  1. YII2操作mongodb笔记
  2. php 获取请求,PHP 扩展 - 获取请求信息
  3. android 限制edittext 最大输入字符数
  4. 使用HTML5实现刮刮卡效果
  5. leetcode359. 日志速率限制器
  6. 【英语学习】【WOTD】avuncular 释义/词源/示例
  7. 现代GPU的体系结构
  8. ie ajax异步缓存,IE下发送Ajax请求的缓存问题
  9. 微信公众号开发工具包
  10. python plot坐标轴_修改python plot折线图的坐标轴刻度方法
  11. Atitit 朋友圈 微博 之道 朋友圈的dos and donts
  12. Linux kernel tick发起调度软中断函数调用图
  13. 用USBasp下载程序
  14. 联想m7400更换墨粉盒怎么清零_联想M7400一体打印机换墨粉后如何清零?
  15. 专业技能与职业素养报告计算机,学生专业技能与职业素养专题报告怎么写
  16. 怎样制作文章视频gif插图?视频gif格式图片如何在线制作?
  17. MySQL基本概念和正确发音(表、列、行、注解等讲解)
  18. mysql acid
  19. bpmn不带网关的流程
  20. Epoll 反应堆模型核心原理及代码讲解

热门文章

  1. Python算法之旅元组的风暴之最长上升子序列
  2. 重磅!《中国迈向新一代人工智能》全文来了。道翰天琼认知智能平台为您揭秘新一代人工智能。
  3. python用input输入list_python怎么用input函数输入一个列表
  4. linux驱动程序设计21 Linux设备驱动的调试
  5. 功能测试的类型之Alpha和Beta测试
  6. 【java基础】java继承从“我爸是李刚”讲起
  7. MongoDB连接URL说明
  8. 通过eclipse手工生成osgi-bundle的jar包
  9. 搜索推广营销五步曲之三:方案制作之如何写好创意
  10. wps纸张大小设置成A4_A4纸是最广泛的打印纸,隐藏了什么秘密?