微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Groovy的闭包示例

  1.  源代码
  2. package mars.groovy
  3. /**
  4.  * @author Eric Han
  5.  * 2008-9-3 11:58:28
  6.  */
  7. public class MyClosure{
  8.  public static void main(def args){
  9.   def myfirstClosure={man->println "Hello ${man}"}
  10.   
  11.   myfirstClosure.call('Eric')
  12.   myfirstClosure('Carry')
  13.   
  14.   println ''
  15.   def map=['Eric':30,'bobo':29,'Carry':25]
  16.   map.each{println "${it.key} age is: ${it.value}"}
  17.   
  18.   println ''
  19.   map.findAll{age->age.value>28}.each{println it}
  20.   
  21.   println ''
  22.   def isAnyOneTrue=[11,12,13,14].any{n->n>12}
  23.   def isEveryOneTrue=[11,14].any{n->n>10}
  24.   println "any one is true? ${isAnyOneTrue}"
  25.   println "every one is true? ${isEveryOneTrue}"
  26.    
  27.   def result
  28.   println ''
  29.   def list=[1,2,3,4,5]
  30.   result=list.collect{n->return n*n}
  31.   println "collect result:${result}"
  32.   
  33.   println ''
  34.   def list1=[1,5]
  35.   result=list1.inject(1){prevIoUsValue,currentValue->prevIoUsValue*currentValue}
  36.   println "inject result:${result}"
  37.  }
  38. }
  39. 输出
  40. Hello Eric
  41. Hello Carry
  42. Eric age is: 30
  43. bobo age is: 29
  44. Carry age is: 25
  45. bobo=29
  46. Eric=30
  47. any one is truetrue
  48. every one is truetrue
  49. collect result:[1, 4, 9, 16, 25]
  50. inject result:120

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

相关推荐