Groovy入门之四:闭包

本文深入解析了Groovy编程语言中闭包的概念、应用及其在迭代、参数传递等方面的特性,通过实例展示了如何利用闭包进行高效编程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.groovy.test

/**
 * 1、闭包是可执行的代码块。它们不需要名称,可以在定义之后执行
 * 2、闭包在 Groovy 中频繁出现,但是,通常用于在一系列值上迭代的时候
 * 3、因为闭包是一个代码块,所以还能够作为参数进行传递
 * 4、闭包在 Groovy 中也是一类对象 — 既可以作为参数传递,也可以放在以后执行
 * @author Administrator
 *
 */
class Closure {

	static void main(args) {

		closure4()
	}

	static closure1() {
		def acoll = ["Groovy", "Java", "Ruby"]

		for(Iterator iter = acoll.iterator(); iter.hasNext();){
			println iter.next()
		}
		
	}
	
	/**
	 * 1、这里闭包是作为each的参数用
	 * 2、闭包中的 it 变量是一个关键字,指向被调用的外部集合的每个值 — 它是默认值,可以用传递给闭包的参数覆盖它。
	 * @return
	 */
	static closure2() {
		def acoll = ["Groovy", "Java", "Ruby"]
		
		acoll.each
		{
			println it
		}
		
		acoll.each{ value ->
			println value
		}
	}
	
	/**
	 * 闭包还允许使用多个参数 
	 * @return
	 */
	static closure3() {
		def hash = [name:"Andy", "VPN-#":45]
		
		hash.each{ key, value ->
		 println "${key} : ${value}"
		}
	}
	
	/**
	 * 1、定义一个闭包excite
	 * 2、闭包两种调用方式,直接引用或者用.call
	 * 3、在 String 中使用 ${value}语法将告诉 Groovy 替换 String 中的某个变量的值
	 * @return
	 */
	static closure4() {
		def excite = { word ->
		 return "${word}!!"
		}
		
		assert "Groovy!!" == excite("Groovy")
		assert "Java!!" == excite.call("Java")
	}
}

 

转载于:https://my.oschina.net/bruces/blog/673707

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值