WEB开发网
开发学院软件开发Java 实战 Groovy: Groovy 的腾飞 阅读

实战 Groovy: Groovy 的腾飞

 2009-11-19 00:00:00 来源:WEB开发网   
核心提示: 在“alt.lang.jre: 感受 Groovy”的清单 21 中,我演示了迭代,实战 Groovy: Groovy 的腾飞(5),查看了用于闭包的经典 Groovy 参数语法,可以回想一下,在清单 7 中,我只是将 @Property 属性添加到 Filter 的成员

在“alt.lang.jre: 感受 Groovy”的清单 21 中,我演示了迭代,查看了用于闭包的经典 Groovy 参数语法。可以回想一下,我在集合上运用了 find 方法,该方法试图找到值 3。然后我传入了参数 x,它代表 iterator 的下一个值 (有经验的 Groovy 开发人员会注意到,x 完全是可选的,我可以引用隐式变量 it)。使用 JSR Groovy 时,必须删除 | ,并用 Nice 样式的 -> 分隔符代替它,如清单 5 所示:


清单 5. 新的 Groovy 闭包语法
[2, 4, 6, 8, 3].find { x -> 
 if (x == 3){ 
  println "found ${x}" 
 } 
} 

新的闭包语法有没有让您想起 Nice 语言的块语法呢?

正如我在前面提到过的,Groovy 的 JDK 没有变。但是就像刚才所学到的,闭包却发生了变化;所以,使用 Groovy 的 JDK 中那些漂亮的 API 的方式也发生了变化,但仅仅是轻微的变化。在清单 6 中,可以看到这些变化对 Groovy IO 的影响根本是微不足道的:


清单 6. Groovy 的 JDK 依旧功能强大!
import java.io.File 
new File("maven.xml").eachLine{ line -> 
 println "read the following line -> " + line 
} 

改编过滤器

现在,不得不让您跳过很大一部分,但您还记得在“用 Groovy 进行 Ant 脚本编程”一文中,我是如何介绍闭包的威力和工具的吗?谢天谢地,我在这个专栏的示例中所做的多数工作都很容易针对新语法重新进行改编。在清单 7 中,我只是将 @Property 属性添加到 Filter 的成员 strategy(最初在那篇文章的清单 2 和清单 3 中显示)。然后在闭包中添加 -> 分隔符,万岁 —— 它可以工作了!

上一页  1 2 3 4 5 6 7 8  下一页

Tags:实战 Groovy Groovy

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接