Groovy 1.5的新特性

http://tech.ddvip.com   2008年01月22日    社区交流

内容摘要:Groovy,针对JVM的类Java动态语言,主要增强了对于Java 5特征的支持,包括注解、泛型和枚举,框架包括Spring,Hibernate,JPA,Goole Guice或者TestNG。

  经典的循环

  虽然Groovy严格地来说不是100%的Java的超集,但是在每一个Groovy的新版本中,其语法都更接近Java的语法,在Groovy中越来越多的Java代码是有效的。这种兼容性的好处是当你开始用Groovy工作时,你可以拷贝并粘贴Java代码到你的Groovy类中,它们会如你所愿地工作。然后,随着时间的推移你学习了Groovy语言,你可以扔掉那些从Java拷贝来的在Groovy中不地道的代码,使用GStrings(内插字符串),或者闭包等等。Groovy为Java开发者提供了一个非常平滑的学习曲线。

  然而,Groovy中有一处忽略了Java语法的兼容性,实际上Groovy中不允许使用从Java语言的C背景继承而来的经典的循环语法。最初,Groovy开发者认为经典的循环语法不是最好的,他们更喜欢使用可读性更好的for/in构造。但是由于Groovy用户经常要求Groovy包含这个旧的循环构造,所以Groovy团队决定支持它。

  在Groovy 1.5中,你可以选择Groovy的for/in构造,或者经典的for循环构造:

for (i in 0..9)
println i
for (int i = 0; i < 10; i++)
println i

  最终,这也许只是品味不同,Groovy的熟手用户通常更喜欢for/in循环这样更加简明的语法。

  没有圆括号的命名参数

  由于易适应且简明的语法,以及高级的动态能力,Groovy是实现内部领域特定语言(Domain-Specific Languages)的理想选择。当你希望在业务问题专家和开发者之间共享一种公共的比喻说法的时候,你可以借Groovy之力来创建一个专用的商业语言,用该语言为你的应用的关键概念和商业规则建模。这些DSL的一个重要方面是使得代码非常可读,而且让非技术人员更容易写代码。为了更进一步实现这个目标,Groovy的语法做了通融,允许我们使用没有圆括号括起来的命名参数。

来源:InfoQ中文站    作者:曹云飞    责编:豆豆技术应用

正在加载评论...