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,3,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]

 

转载于:https://my.oschina.net/shajin/blog/786825

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值