美文网首页
Groovy 闭包

Groovy 闭包

作者: MiBoy | 来源:发表于2018-11-05 14:36 被阅读11次

好久没动笔(键盘)了,发现自己变懒了。但是在实际的工作过程中,总是责怪自己没有动笔把自己之前的遇到的问题记录下来,等过一段时间之后,自己好要重新去搜索解决问题的办法,所以有些东西还得需要自己记下来,不然以后就又忘了。

浅谈闭包。

记得两年前也遇到过闭包这些名词,当时也去看了一些定义,强迫自己去理解,但当自己重新看的时候,却感觉有点陌生。最近在看《Android gradle 权威指南 》,讲到闭包的时候感觉自己有些不理解,然后就是百度了,偶然在百度百科上看见了对闭包的解释,稍微看了一下,竟然说的直截了当。比如:闭包就是能够读取其他函数内部变量的函数。例如在javascript中,只有函数内部的子函数才能读取[局部变量],所以闭包可以理解成“定义在一个[函数]内部的函数“。在本质上,闭包是将函数内部和函数外部连接起来的桥梁。 比我在书上看的明白多了。

Groovy

闭包(Closure)是Java所不具备的语法结构(JAVA8增加了对闭包的支持)。闭包就是一个代码块,用“{ }”包起来。此时,程序代码也就成了数据,可以被一个变量所引用(与C语言的函数指针比较类似)。闭包的最典型的应用是实现回调函数(callback)。Groovy的API大量使用闭包,以实现对外开放。闭包的创建过程很简单,例如:

{ 参数 ->

代码...

}

参考下面的例子代码,定义了c1和c2两个闭包,并对它们进行调用:

def c1 = { println it }

def c2 = { text -> println text }

c1.call("content1") //用call方法调用闭包

c2("content2") //直接调用闭包

“->;”之前的部分为闭包的参数,如果有多个参数,之间可用逗号分割;“->;”之后的部分为闭包内的程序代码。如果省略了“->;”和它之前的部分,此时闭包中代码,可以用名为“it”的变量访问参数。

闭包的返回值和函数的返回值定义方式是一样的:如果有return语句,则返回值是return语句后面的内容;如果没有return语句,则闭包内的最后一行代码就是它的返回值。

行了先记录到此。最后附上链接:
百度百科:闭包

相关文章

  • 详解 groovy 的闭包(上)

    groovy 的闭包特点 在 groovy 中的闭包。groovy 中的闭包是一个开放的匿名代码块,可以接受参数,...

  • Groovy 闭包

    本文介绍了Groovy闭包的有关内容。闭包可以说是Groovy中最重要的功能了。如果没有闭包,那么Groovy除了...

  • Groovy语法简介

    Groovy简单语法: Groovy中的闭包:

  • 二、Groovy语法(二):闭包

    Groovy闭包 1、Groovy中闭包基础 1.1 闭包的概念闭包是被包装成对象的代码块,可以通过一个变量引用到...

  • 《Groovy极简教程》第9章 Groovy闭包(Closure

    《Groovy极简教程》第9章 Groovy闭包(Closures)

  • Groovy 闭包

    好久没动笔(键盘)了,发现自己变懒了。但是在实际的工作过程中,总是责怪自己没有动笔把自己之前的遇到的问题记录下来,...

  • Groovy 闭包

    闭包 闭包是一段可执行的代码块,类似于方法也可以传递参数;可在闭包中访问属性值,也就是说可以修改闭包作用域中的所有...

  • Groovy闭包

    闭包定义与调用 *动态闭包 this、owner、delegate闭包里面有3个重要的对象,把它们弄清楚了,才能对...

  • Groovy语法基础三

    上接Groovy语法基础二 六、闭包 闭包,英文叫Closure,是Groovy中非常重要的一个数据类型或者说一...

  • Groovy Closure(闭包)

    1. 语法 1.1. 定义一个闭包 闭包是Groovy中非常重要的一个数据类型或者说一种概念。闭包是一种数据类型,...

网友评论

      本文标题:Groovy 闭包

      本文链接:https://www.haomeiwen.com/subject/nsrsxqtx.html