First they ignore you
          then they ridicule you
          then they fight you
          then you win
              -- Mahatma Gandhi
          Chinese => English     英文 => 中文             
          隨筆-221  評論-1047  文章-0  trackbacks-0
          想必關(guān)注Java的朋友不會沒有聽說過Groovy吧?的確,由于Groovy的語法與Java極其相近,所以對于我們這群Java狂熱分子特別友好。Groovy對于有Java基礎(chǔ)的朋友來說,幾乎可以說是唾手可得!要花點(diǎn)時間的是Groovy所提供的獨(dú)有特性,當(dāng)然不學(xué)這些特性照樣可以用Groovy進(jìn)行編程,但缺了Groovy的那個味。就比如我們學(xué)英語,的確能說能寫,但有些用法都很不地道,這是同樣的道理。

          現(xiàn)在Groovy已經(jīng)發(fā)布了1.0正式版,網(wǎng)上還有《Groovy in Action》電子書下載,學(xué)習(xí)Groovy變的越來越方便了,不用因?yàn)槿狈Y料,編譯器報錯不準(zhǔn)而導(dǎo)致學(xué)習(xí)進(jìn)度緩慢。而現(xiàn)在Groovy的項目之所以還比較少,其最主要的原因是Groovy的運(yùn)行效率比較低,Groovy在2007年1月初才發(fā)布1.0正式版。

          至于Groovy的運(yùn)行效率低,目前還沒有什么好的解決方法,這主要跟bytecode有關(guān)。但令人興奮的是,這些用Java實(shí)現(xiàn)動態(tài)語言的限制將在Java7誕生那天被解除,因?yàn)镾un已經(jīng)在研究一種新的專門用于動態(tài)語言被命名為invokedynamic的bytecode,這將大大提高動態(tài)語言比如Groovy在JVM上的運(yùn)行效率,直逼Java。相關(guān)信息可參見Dynamic Language Support on the JVM ( http://www.artima.com/lejava/articles/dynamic_languages.html )

          最后給一個較常碰到的編程問題:請打印所給文本文件(EachLine.groovy),并在行首標(biāo)出行號。

          EachLine.groovy源碼:
          ??? def num = 0
          ??? new File("EachLine.groovy").eachLine { line ->
          ??????? num++
          ??????? println "$num: $line"
          ??? }

          運(yùn)行結(jié)果:
          E:\Temp>groovy EachLine.groovy
          1: def num = 0
          2: new File("EachLine.groovy").eachLine { line ->
          3:????? num++
          4:????? println "$num: $line"
          5: }

          附:
          Groovy官方網(wǎng)址: http://groovy.codehaus.org
          Groovy學(xué)習(xí)資料: 通過與Java的比較,迅速掌握Groovy
          posted on 2007-01-24 17:21 山風(fēng)小子 閱讀(4720) 評論(9)  編輯  收藏 所屬分類: Groovy & Grails
          主站蜘蛛池模板: 昆山市| 濉溪县| 贺兰县| 中方县| 弥渡县| 射洪县| 韶山市| 旺苍县| 沧州市| 汉源县| 丹凤县| 闽清县| 丁青县| 外汇| 太康县| 衡阳县| 都匀市| 义乌市| 云安县| 绵竹市| 灵台县| 类乌齐县| 旬阳县| 辉南县| 都兰县| 甘泉县| 南乐县| 商水县| 白山市| 屯昌县| 桦甸市| 铁岭县| 库伦旗| 保定市| 类乌齐县| 丘北县| 木里| 广东省| 泾阳县| 嘉兴市| 湖口县|