Groovy学习笔记(4)-闭包
发布时间:2020-12-14 16:42:52 所属栏目:大数据 来源:网络整理
导读:闭包是用{}符号括起来的代码块,它可以被单独运行或调用,也可以被命名,类似‘匿名类’或内联函数的概念。 闭包中最常见的应用是对集合进行迭代。 可以通过.操作符来获得方法闭包。 /** * 闭包 * */class ClosureTest { static main(args) { def clos1={pri
闭包是用{}符号括起来的代码块,它可以被单独运行或调用,也可以被命名,类似‘匿名类’或内联函数的概念。 闭包中最常见的应用是对集合进行迭代。 可以通过.&操作符来获得方法闭包。 /** * 闭包 * */ 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] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |