Groovy是用于Java虛擬機的一種基于JVM的開發(fā)語言的敏捷的動態(tài)語言,它結(jié)合了Python、Ruby和Smalltalk的許多強大的特性,具有靜態(tài)類型和靜態(tài)編譯功能,適用于java品臺,旨在通過簡潔,熟悉且易于學習的語法提高開發(fā)人員的工作效率。這是一種成熟的面向?qū)ο缶幊陶Z言,既可以用于面向?qū)ο缶幊?,又可以用作純粹的腳本語言。使用該種語言不必編寫過多的代碼,同時又具有閉包和動態(tài)語言中的其他特性,特別是其運行在JVM上的特性,使得groovy能夠使用其他java語言編寫的庫,換句話說,它可以順利的和任何java程序集成,并立即為用戶的應(yīng)用程序提供強大的功能,包括腳本功能。
安裝教程
1、解壓文件雙擊應(yīng)用程序進行安裝,點擊next
2、默認進行安裝,完成后會要求是否自動配置環(huán)境變量,選擇全部打勾,點擊next
3、完成后點擊finish退出
4、win+r輸入cmd打開命令符,輸入groovy -v,出現(xiàn)下圖所示則安裝配置成功
5、如果沒有配置成功的話,需手動修改環(huán)境變量,找到GROOVY_HOME變量,將安裝目錄復制進來即可
軟件閉包
閉包就是可以使用參數(shù)的代碼片段,每個閉包會被編譯成繼承g(shù)roovy.lang.Closure類的類,這個類有一個叫call方法,通過該方法可以傳遞參數(shù)并調(diào)用這個閉包.它們可以訪問并修改在閉包創(chuàng)建的范圍內(nèi)的變量,在閉包內(nèi)創(chuàng)建的變量在閉包被調(diào)用的范圍內(nèi)同樣可以被引用, 閉包可以保存在變量中并被作為參數(shù)傳遞到方法中。
語言特色
1、平學習曲線
2、簡潔,可讀和表達的語法,易于Java開發(fā)人員學習
3、平滑的Java集成
4、無縫和透明地集成并與Java和任何第三方庫進行互操作
5、充滿生機
6、Web開發(fā),反應(yīng)式應(yīng)用程序,并發(fā)/異步/并行庫,測試框架,構(gòu)建工具,代碼分析,GUI構(gòu)建
7、強大的功能
8、閉包,構(gòu)建器,運行時和編譯時元程序設(shè)計,函數(shù)編程,類型推斷和靜態(tài)編譯
9、域特定語言
10、靈活和可擴展的語法,高級集成和定制機制,在您的應(yīng)用程序中集成可讀的業(yè)務(wù)規(guī)則
11、腳本和測試膠
12、偉大的寫作簡潔和可維護的測試,以及所有的構(gòu)建和自動化任務(wù)
主要功能
1、 構(gòu)建在強大的Java語言之上 并 添加了從Python,Ruby和Smalltalk等語言中學到的 諸多特征,例如動態(tài)類型轉(zhuǎn)換、閉包和元編程(metaprogramming)支持。。
2、為Java開發(fā)者提供了 現(xiàn)代最流行的編程語言特性,而且學習成本很低(幾乎為零)。
3、 支持DSL(Domain Specific Languages領(lǐng)域定義語言)和其它簡潔的語法,讓代碼變得易于閱讀和維護。
4、受檢查類型異常(Checked Exception)也可以不用捕獲。
5、 擁有處理原生類型,面向?qū)ο笠约耙粋€Ant DSL,使得創(chuàng)建Shell Scripts變得非常簡單。
6、在開發(fā)Web,GUI,數(shù)據(jù)庫或控制臺程序時 通過 減少框架性代碼 大大提高了開發(fā)者的效率。
7、支持單元測試和模擬(對象),可以 簡化測試。
8、無縫集成 所有已經(jīng)存在的 Java對象和類庫。
9、直接編譯成Java字節(jié)碼,這樣可以在任何使用Java的地方使用。[2]
10、支持函數(shù)式編程,不需要main函數(shù)。
11、一些新的運算符。
12、默認導入常用的包。
13、斷言不支持jvm的-ea參數(shù)進行開關(guān)。
14、支持對對象進行布爾求值。
15、類不支持default作用域,且默認作用域為public。
16、基本類型也是對象,可以直接調(diào)用對象的方法。
語法說明
Groovy 語法與Java 語言的語法很相似,雖然 這款軟件的語法源于Smalltalk和Ruby這類語言的理念,但是可以將它想像成 Java 語言的一種更加簡單、表達能力更強的變體。(在這點上,Ruby與這個不同,因為它的語法與 Java 語法差異很大。)
許多 Java 開發(fā)人員喜歡這款軟件代碼和 Java 代碼的相似性。從學習的角度看,如果知道如何編寫 Java 代碼,那就已經(jīng)了解這款軟件了。它和 Java 語言的主要區(qū)別是:完成同樣的任務(wù)所需的這個代碼比 Java 代碼更少。
0條評論