想必關注Java的朋友不會沒有聽說過Groovy吧?的確,由于Groovy的語法與Java極其相近,所以對于我們這群Java狂熱分子特別友好。Groovy對于有Java基礎的朋友來說,幾乎可以說是唾手可得!要花點時間的是Groovy所提供的獨有特性,當然不學這些特性照樣可以用Groovy進行編程,但缺了Groovy的那個味。就比如我們學英語,的確能說能寫,但有些用法都很不地道,這是同樣的道理。
現在Groovy已經發布了1.0正式版,網上還有《Groovy in Action》電子書下載,學習Groovy變的越來越方便了,不用因為缺乏資料,編譯器報錯不準而導致學習進度緩慢。而現在Groovy的項目之所以還比較少,其最主要的原因是Groovy的運行效率比較低,Groovy在2007年1月初才發布1.0正式版。
至于Groovy的運行效率低,目前還沒有什么好的解決方法,這主要跟bytecode有關。但令人興奮的是,這些用Java實現動態語言的限制將在Java7誕生那天被解除,因為Sun已經在研究一種新的專門用于動態語言被命名為invokedynamic的bytecode,這將大大提高動態語言比如Groovy在JVM上的運行效率,直逼Java。相關信息可參見
Dynamic Language Support on the JVM ( http://www.artima.com/lejava/articles/dynamic_languages.html )
最后給一個較常碰到的編程問題:請打印所給文本文件(EachLine.groovy),并在行首標出行號。
EachLine.groovy源碼:
??? def num = 0
??? new File("EachLine.groovy").eachLine { line ->
??????? num++
??????? println "$num: $line"
??? }
運行結果:
E:\Temp>groovy EachLine.groovy
1: def num = 0
2: new File("EachLine.groovy").eachLine { line ->
3:????? num++
4:????? println "$num: $line"
5: }
附:
Groovy官方網址: http://groovy.codehaus.org
Groovy學習資料: 通過與Java的比較,迅速掌握Groovy
posted on 2007-01-24 17:21
山風小子 閱讀(4715)
評論(9) 編輯 收藏 所屬分類:
Groovy & Grails