微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Groovy学习笔记4-闭包

闭包是用{}符号括起来的代码块,它可以被单独运行或调用,也可以被命名,类似‘匿名类’或内联函数的概念。

闭包中最常见的应用是对集合进行迭代。

可以通过.&操作符来获得方法闭包。

/**
 * 闭包
 * */
class ClosureTest {

    static main(args) {
        def clos1={println "hello Jack"}
        //两种调用方式
		clos1.call()
		clos1()
       	
		//参数化的闭包
		def clos2={param -> println "hello ${param}"}
		clos2.call('Tom')
		clos2('Lucy')
		
		//单个隐参数
		def clos3={println "hello ${it}"} //这里的it为隐性变量
		clos3.call('aaa')
		
		//闭包作用范围 
		def greeting='welcome'
		def clos4={param -> println "${greeting} ${param}"}
		clos4.call('Terry')
		greeting='come here'
		clos4.call('Terry')
		
		def test=new Closuretest()
		test.demo(clos4)
		
		
		//闭包在集合中的高效使用
		[1,2,3,4].each {println it}
		['Jack':24,'Terry':26,'Lucy':22].each {if(it.key=='Terry') println it.value}
		
		def value=[2,8,9,1,10].findAll({it>8})  //finlAll
		println value
    }
	
	def demo(clos){
		def greeting='hi'
		clos.call('Jack')
	}

}
hello Jack
hello Jack
hello Tom
hello Lucy
hello aaa
welcome Terry
come here Terry
come here Jack
1
2
3
4
26
[9,10]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐