Groovy - 介紹

  Groovy 是 用於Java 虛擬機的一種敏捷的 動態語言,它是一種成熟的 面向對象編程語言,既能夠用於面向對象編程,又能夠用做純粹的 腳本語言。使用該種語言沒必要編寫過多的代碼,同時又具備 閉包和動態語言中的其餘特性。
Groovy是 JVM的一個替代語言(替代是指能夠用 Groovy 在Java平臺上進行 Java 編程),使用方式基本與使用 Java代碼的方式相同,該語言特別適合與 Spring的動態語言支持一塊兒使用,設計時充分考慮了Java集成,這使 Groovy 與 Java 代碼的互操做很容易。(注意:不是指Groovy替代java,而是指Groovy和java很好的結合編程。[1]  
 

基本特色

一、 構建在強大的 Java語言之上 並 添加了從 PythonRubySmalltalk等語言中學到的 諸多特徵,例如動態類型轉換、 閉包元編程(metaprogramming)支持。。
二、爲Java開發者提供了 現代最流行的編程語言特性,並且學習成本很低(幾乎爲零)。
三、 支持 DSL(Domain Specific Languages領域定義語言)和其它簡潔的語法,讓代碼變得易於閱讀和維護。
四、受檢查類型異常(Checked Exception)也能夠不用捕獲。
五、 Groovy擁有處理原生類型, 面向對象以及一個Ant DSL,使得建立Shell Scripts變得很是簡單。
六、在開發Web, GUI,數據庫或控制檯程序時 經過 減小框架性代碼 大大提升了開發者的效率。
七、支持 單元測試和模擬(對象),能夠 簡化測試。
八、無縫集成 全部已經存在的 Java對象和類庫。
九、直接編譯成Java 字節碼,這樣能夠在任何使用Java的地方 使用Groovy。[2]  
十、支持 函數式編程,不須要 main函數
十一、一些新的 運算符
十二、默認導入經常使用的包。
1三、斷言不支持jvm的-ea參數進行開關。
1四、支持對對象進行布爾求值。
1五、類不支持default 做用域,且默認做用域爲 public
1六、groovy中基本類型也是對象,能夠直接調用對象的方法。

動態類型

類型對於變量,屬性,方法,閉包的參數以及方法的返回類型都是無關緊要的,都是在給變量賦值的時候才決定它的類型, 不一樣的類型會在後面用到,任何類型均可以被使用,即便是基本類型 (經過自動包裝(autoboxing)). 當須要時,不少類型之間的轉換都會自動發生,好比在這些類型之間的轉換: 字符串(String),基本類型(如int) 和類型的包裝類 (如 Integer)之間,能夠把不一樣的基本類型添加到同一數組(collections)中。

閉包

閉包就是可使用參數的代碼片斷,每一個閉包會被編譯成 繼承groovy.lang.Closure類的類,這個類有一個叫call方法,經過該方法能夠傳遞參數並調用這個閉包.它們能夠訪問並修改在閉包建立的範圍內的變量,在閉包內建立的變量在閉包被調用的範圍內一樣能夠被引用, 閉包能夠保存在變量中並被做爲參數傳遞到方法中。

 

Groovy 語法與Java 語言的語法很類似,雖然 Groovy 的語法源於 SmalltalkRuby這類語言的理念,可是能夠將它想像成 Java 語言的一種更加簡單、表達能力更強的變體。(在這點上,Ruby與 Groovy 不一樣,由於它的語法與 Java 語法差別很大。)
許多 Java 開發人員喜歡 Groovy 代碼和 Java 代碼的類似性。從學習的角度看,若是知道如何編寫 Java 代碼,那就已經瞭解 Groovy 了。Groovy 和 Java 語言的主要區別是:完成一樣的任務所需的 Groovy 代碼比 Java 代碼更少。
相關文章
相關標籤/搜索