4.1.2Groovy理解闭包

来源:互联网 发布:cad软件锁不起作用 编辑:程序博客网 时间:2024/05/01 01:03

闭包:从函数式编程Lambdab表达式派生而来(匿名代码块)。

函数式编程:函数参数可以传入代码块。

匿名函数:简单理解为代码块。

高阶函数:参数为函数。

it:匿名代码块中唯一的参数。

// 定义方法def pickEven(n, block) {    for(int i = 2; i <= n; i += 2) {        block(i)    }}// 写法1:打印1到10之间的偶数pickEven(10, { println it } )println "-------------end1---------------"// 写法2:打印1到10之间的偶数pickEven(10) { println it }println "-------------end2---------------"// 写法3:打印1到10之间的偶数pickEven(10) { evenNumber -> println evenNumber }println "-------------end3---------------"// 1到10之间的偶数求和total = 0pickEven(10) { total += it }println "Sum of even numbers from 1 to 10 is ${total}"println "-------------end4---------------"// 1到10之间的偶数想乘product = 1pickEven(10) { product *= it }println "Product of even numbers from 1 to 10 is ${product}"println "-------------end5---------------"
运行结果:

2
4
6
8
10
-------------end1---------------
2
4
6
8
10
-------------end2---------------
2
4
6
8
10
-------------end3---------------
Sum of even numbers from 1 to 10 is 30
-------------end4---------------
Product of even numbers from 1 to 10 is 3840
-------------end5---------------

原创粉丝点击