groovy 闭包

      闭包(Closure)类似于 Java 语言中的匿名内部类。闭包和匿名内部类都是可执行的一段代码,不过这两者之间有一些细微的不同。状态是自动传入传出闭包的。闭包可以有名字。它们可以重复使用。而且,最重要且对 Groovy 同样成立的是,闭包远比匿名内部类要灵活得多!闭包用以下方法定义:
  1. {[comma-separated-Arguments-list ->] statements }

    闭包用“{}”括起,“->”前面是参数,后面是处理语句。

    闭包至少会有一个参数 “it”,它其实是参数表中的第一个参数,所以如果闭包定义中只有一个参数,可以省略不写,而使用缺省的参数“it”。对于没有参数定义的闭包,“it”的值就是 null 。

    闭包通过 call() 方法被调用。在底层,call() 方法实现了对闭包隐含的doCall()方法的调用。

    几个简单的例子:

  1. closure = { name ->               
  2.     println("hello ${name}"
  3. }closure.call("world!")
  1. closure = { greeting, name ->             
  2.     println(greeting + name) 
  3. }closure("hello ""world!")

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

相关推荐