|
|
|
|
移动端

2.5.1 初识闭包

《Android Gradle权威指南》本书全面讲解了Android 下Gradle的详细用法,并结合实例,让读者达到学以致用的目的。本节为大家介绍初识闭包。

作者:飞雪无情来源:人民邮电出版社|2017-09-09 14:04

开发者盛宴来袭!7月28日51CTO首届开发者大赛决赛带来技术创新分享

2.5 闭包

闭包是Groovy的一个非常重要的特性,可以说它是DSL的基础。闭包不是Groovy的首创,但是它支持这一重要特性,这就使代码灵活、轻量、可复用,再也不用像Java一样动不动就要用一个类了。虽然Java后来有了匿名内部类,但是一样冗余不灵活。

2.5.1 初识闭包

前面我们讲过,闭包其实就是一段代码块,下面我们就一步步实现自己的闭包,了解闭包的it变量的由来。集合的each方法我们已经非常熟悉了,我们就以其为例,实现一个类似的闭包功能:

  1. task helloClosure << {  
  2. //使用我们自定义的闭包  
  3. customEach {  
  4. println it  
  5. }  
  6. }  
  7. def customEach(closure){  
  8. //模拟一个有10 个元素的集合,开始迭代  
  9. for(int i in 1..10){  
  10. closure(i)  
  11. }  

在上面的例子中我们定义了一个方法customEach,它只有一个参数,用于接收一个闭包(代码块)。那么这个闭包如何执行呢?很简单,跟一对括号就是执行了。会JavaScript的读者是不是觉得这种情况的应用很熟悉,把它当作一个方法调用,括号里的参数就是该闭包接收的参数,如果只有一个参数,那么就是我们的it变量了。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

框架设计(第2版)CLR Via C#

作为深受编程人员爱戴和尊敬的编程专家,微软.NET开发团队的顾问,本书作者Jeffrey Richter针对开发各种应用程序(如Web Form、Windows For...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊