當(dāng)前位置:首頁 > 電腦軟件 > 編程其它 > groovy語言

groovy語言

版本:v3.0.0 大?。?8.49M 語言:簡體中文 類別:編程其它
  • 類型:國產(chǎn)軟件
  • 授權(quán):免費(fèi)軟件
  • 更新:2023-10-24
  • 環(huán)境:Windows7,WinXP,WinVista
  • 本地下載
9
0% 0%

情介紹

groovy是一種基于JVM的開發(fā)語言,也是一種功能強(qiáng)大的可選類型和動態(tài)語言,具有靜態(tài)類型和靜態(tài)編譯功能,適用于java品臺,旨在通過簡潔,熟悉且易于學(xué)習(xí)的語法提高開發(fā)人員的工作效率,該語言還結(jié)合了Python、Ruby和Smalltalk的許多強(qiáng)大的特性。
特別是其運(yùn)行在JVM上的特性,使得groovy能夠使用其他java語言編寫的庫,換句話說,它可以順利的和任何java程序集成,并立即為用戶的應(yīng)用程序提供強(qiáng)大的功能,包括腳本功能,領(lǐng)域特定語言創(chuàng)作,運(yùn)行時(shí)和編譯時(shí)原程序設(shè)計(jì)和功能編程等等。該軟件同樣是JVM的一個(gè)替代語言(替代的意思是指能夠在java平臺上進(jìn)行java程序的編程),使用方法和我們使用java代碼一樣,而且特別的適合于Spring的動態(tài)語言支持一起使用,是非常強(qiáng)大的一種多方面語言。

安裝與配置

1、首先將我們的該軟件解壓出來放到自己常用的磁盤中,然后復(fù)制路徑。
2、完成以后打開計(jì)算機(jī)的屬性,點(diǎn)擊高級系統(tǒng)設(shè)置。
3、然后點(diǎn)擊環(huán)境變量,點(diǎn)擊新建,添加變量名和變量值。變量值為用戶的該軟件的路徑。
變量名:GROOVY_HOME
變量值:D:\groovy-2.4.9

4、然后再在變量Path中添加變量值:%GROOVY_HOME%\bin。記得用“;”隔開。
5、然后驗(yàn)證是否配置完畢,在開始菜單中點(diǎn)擊運(yùn)行,輸入cmd,打開cmd命令行,然后輸入Groovy -v回車,出現(xiàn)下面的畫面表示成功。

語言特色

平學(xué)習(xí)曲線
簡潔,可讀和表達(dá)的語法,易于Java開發(fā)人員學(xué)習(xí)
平滑的Java集成
無縫和透明地集成并與Java和任何第三方庫進(jìn)行互操作
充滿生機(jī)
Web開發(fā),反應(yīng)式應(yīng)用程序,并發(fā)/異步/并行庫,測試框架,構(gòu)建工具,代碼分析,GUI構(gòu)建
強(qiáng)大的功能
閉包,構(gòu)建器,運(yùn)行時(shí)和編譯時(shí)元程序設(shè)計(jì),函數(shù)編程,類型推斷和靜態(tài)編譯
域特定語言
靈活和可擴(kuò)展的語法,高級集成和定制機(jī)制,在您的應(yīng)用程序中集成可讀的業(yè)務(wù)規(guī)則
腳本和測試膠
偉大的寫作簡潔和可維護(hù)的測試,以及所有的構(gòu)建和自動化任務(wù)

主要功能

1、 構(gòu)建在強(qiáng)大的Java語言之上 并 添加了從Python,Ruby和Smalltalk等語言中學(xué)到的 諸多特征,例如動態(tài)類型轉(zhuǎn)換、閉包和元編程(metaprogramming)支持。。
2、為Java開發(fā)者提供了 現(xiàn)代最流行的編程語言特性,而且學(xué)習(xí)成本很低(幾乎為零)。
3、 支持DSL(Domain Specific Languages領(lǐng)域定義語言)和其它簡潔的語法,讓代碼變得易于閱讀和維護(hù)。
4、受檢查類型異常(Checked Exception)也可以不用捕獲。
5、該軟件擁有處理原生類型,面向?qū)ο笠约耙粋€(gè)Ant DSL,使得創(chuàng)建Shell Scripts變得非常簡單。
6、在開發(fā)Web,GUI,數(shù)據(jù)庫或控制臺程序時(shí) 通過 減少框架性代碼 大大提高了開發(fā)者的效率。
7、支持單元測試和模擬(對象),可以 簡化測試。
8、無縫集成 所有已經(jīng)存在的 Java對象和類庫。
9、直接編譯成Java字節(jié)碼,這樣可以在任何使用Java的地方 使用Groovy。[2]
10、支持函數(shù)式編程,不需要main函數(shù)。
11、一些新的運(yùn)算符。
12、默認(rèn)導(dǎo)入常用的包。
13、斷言不支持jvm的-ea參數(shù)進(jìn)行開關(guān)。
14、支持對對象進(jìn)行布爾求值。
15、類不支持default作用域,且默認(rèn)作用域?yàn)閜ublic。
16、該軟件中基本類型也是對象,可以直接調(diào)用對象的方法。
動態(tài)類型
類型對于變量,屬性,方法,閉包的參數(shù)以及方法的返回類型都是可有可無的,都是在給變量賦值的時(shí)候才決定它的類型, 不同的類型會在后面用到,任何類型都可以被使用,即使是基本類型 (通過自動包裝(autoboxing)). 當(dāng)需要時(shí),很多類型之間的轉(zhuǎn)換都會自動發(fā)生,比如在這些類型之間的轉(zhuǎn)換: 字符串(String),基本類型(如int) 和類型的包裝類 (如Integer)之間,可以把不同的基本類型添加到同一數(shù)組(collections)中。
閉包
閉包就是可以使用參數(shù)的代碼片段,每個(gè)閉包會被編譯成繼承g(shù)roovy.lang.Closure類的類,這個(gè)類有一個(gè)叫call方法,通過該方法可以傳遞參數(shù)并調(diào)用這個(gè)閉包.它們可以訪問并修改在閉包創(chuàng)建的范圍內(nèi)的變量,在閉包內(nèi)創(chuàng)建的變量在閉包被調(diào)用的范圍內(nèi)同樣可以被引用, 閉包可以保存在變量中并被作為參數(shù)傳遞到方法中。

語法說明

該軟件語法與Java 語言的語法很相似,雖然 該軟件 的語法源于Smalltalk和Ruby這類語言的理念,但是可以將它想像成 Java 語言的一種更加簡單、表達(dá)能力更強(qiáng)的變體。(在這點(diǎn)上,Ruby與該軟件不同,因?yàn)樗恼Z法與 Java 語法差異很大。)
許多 Java 開發(fā)人員喜歡該軟件 代碼和 Java 代碼的相似性。從學(xué)習(xí)的角度看,如果知道如何編寫 Java 代碼,那就已經(jīng)了解該軟件了。該軟件 和 Java 語言的主要區(qū)別是:完成同樣的任務(wù)所需的 Groovy 代碼比 Java 代碼更少。

種類介紹

該類和java類一樣,完全可以用標(biāo)準(zhǔn)java bean的語法定義一個(gè)Groovy類。但作為另一種語言,可以使用更該軟件的方式定義類,這樣的好處是,可以少寫一半以上的javabean代碼。
(1)不需public修飾符
如前面所言,該軟件的默認(rèn)訪問修飾符就是public,如果此類成員需要public修飾,則根本不用寫它。
(2)不需要類型說明
同樣前面也說過,該軟件也不關(guān)心變量和方法參數(shù)的具體類型。
(3)不需要getter/setter方法
在很多ide(如eclipse)早就可以為程序員自動產(chǎn)生getter/setter方法了,在該軟件中,不需要getter/setter方法--所有類成員(如果是默認(rèn)的public)根本不用通過getter/setter方法引用它們(當(dāng)然,如果一定要通過getter/setter方法訪問成員屬性,Groovy也提供了它們)。
(4)不需要構(gòu)造函數(shù)
不再需要程序員聲明任何構(gòu)造函數(shù),因?yàn)閷?shí)際上只需要兩個(gè)構(gòu)造函數(shù)(1個(gè)不帶參數(shù)的默認(rèn)構(gòu)造函數(shù),1個(gè)只帶一個(gè)map參數(shù)的構(gòu)造函數(shù)--由于是map類型,通過這個(gè)參數(shù)可以構(gòu)造對象時(shí)任意初始化它的成員變量)。
(5)不需要return
該軟件中,方法不需要return來返回值。
(6)不需要()
該軟件中方法調(diào)用可以省略()(構(gòu)造函數(shù)除外)。
該文件與類的關(guān)系
在軟件中類和文件的對應(yīng)關(guān)系并不像Java中那么固定(Java中一個(gè)文件只能有一個(gè)聲明為public的類和其他一些非公共的類和內(nèi)嵌類) 。在同一個(gè)該文件中可以包含多個(gè)public的類定義。具體規(guī)則如下:
如果在一個(gè)該文件中沒有任何類定義,它將被當(dāng)做script來處理,也就意味著這個(gè)文件將被透明的轉(zhuǎn)換為一個(gè)Script類型的類,這個(gè)自動轉(zhuǎn)換得到的類將使用原始的groovy文件名(去掉擴(kuò)展名,沒有包名,在default包中)作為類的名字。該文件的內(nèi)容被打包進(jìn)run方法,另外在新產(chǎn)生的類中被加入一個(gè)main方法以進(jìn)行外部執(zhí)行該腳本。
如果在該文件正好有一個(gè)類的定義,并且該類的名字與文件名稱相同,那么這就和java中的類與文件的一一對應(yīng)關(guān)系相同。
在一個(gè)該文件中可以包含多個(gè)不同可見性的類定義,并且沒有強(qiáng)制性的要求其中有一個(gè)類的類名與文件名相同。該軟件編譯器會很樂于把該文件中定義的所有的類都編譯成*.class文件。如果希望能夠直接調(diào)用這個(gè)groovy script,比如說在使用該軟件命令行或者在某個(gè)IDE中執(zhí)行,那么應(yīng)該在該文件中的第一個(gè)類中定義一個(gè)main方法。
在一個(gè)該文件中可以混合類的定義和腳本定義。在這種情況下,那些腳本代碼將會變成直接調(diào)用的主類,所以在這種情況下不應(yīng)該再定義一個(gè)和文件同名的類。
在沒有經(jīng)過明確的編譯過程即執(zhí)行時(shí),該軟件將通過文件名來查找類。在這種情況下,名稱將會很重要。該軟件只能找到那些和文件名匹配的類。在找到這種名字匹配的類時(shí),找到的文件中定義的其他類將被解析并變得對該軟件可見。

載地址

  • 電腦版

網(wǎng)友評論

0條評論
(您的評論需要經(jīng)過審核才能顯示)