Groovy培訓
概念
Groovy是一種動態語言,它和Java類似(算是Java的升級版,但是又具備腳本語言的特點),都在Java虛擬機中運行。//區別
1.在Groovy可以用def定義無類型的變量,和返回值為無類型的方法,而在Java中沒有def
2. Java中的equals方法對應Groovy中的== , 而Java中的==(判斷是否引用同一對象)對應Groovy中的is方法
3. Java中的數組定義int[] a = {1, 2, 3}; 在Groovy寫成int[] a = [1, 2, 3]
4. Java中的for循環for (int i = 0; i < len; i++) {...} 在Groovy中還可以寫成for (i in 0..len-1) {...} 或者 for (i in 0..<len) {...}或者for (Strin name : names)
5. Java中的方法返回寫為return; 或者return obj; 在Groovy的方法中return是可選的
6. 對象創建在Java寫為Thought t = new Thought(); 在Groovy也可以這樣寫,不過還多了種寫法:def t = new Thought();
7. 靜態方法調用在Java和Groovy中相同,即ClassName.staticMethodName();
8. 類變量即static變量,Groovy與Java相同,static String name = “張大偉”,在Groovy也可寫為static name = “張大偉“
注釋(Comments)
和Java一樣,支持單行(使用//
)、多行(/* */
)和文檔注釋(使用/** */
)。
//def a='123'
/*123*/
2.運行環境Windows運行環境:下載免安裝版本的apache-groovy-sdk-2.4.14.zip。運行命令:groovy groovy.groovyLinux環境:直接安裝Rpm -ivh groovy運行命令:./groovy.groovy 或者groovy groovy.groovy
Eclipes 安裝插件
http://dist.springsource.org/snapshot/GRECLIPSE/e4.4/
標識符
字母、美元符號$
或下劃線_
開始,不能以數字開始注意:def name
def $name f
def name_type
//錯誤+
def 5type
變量
Groovy中的變量可以通過兩種方式定義 - 使用數據類型,或者使用def關鍵字。對于變量定義,必須明確提供類型名稱或在替換中使用“def”。這是Groovy解析器需要的,Groovy語句可以不用分號結尾。
def var = 'hello'
println(var)
String var='hellow'
println(var.class)
def var2 = "hello2"
println(var2)
println var2
println(var2.class)
關鍵字
as、assert、break、case、catch、class、const、continue、def、default、do、else、enum、extends、false、
finally、for、goto、if、implements、import、in、instanceof、interface、new、null、package、return、super、
switch、this、throw、throws、trait、true、try、while
字符串
在Groovy中字符串有兩種類型,一種是Java原生的java.lang.String
;另一種是groovy.lang.GString
,又叫插值字符串。
def name = 'zdw'
println name.getClass()
//GSname[0]
name="zhangdawei“
myname="my name is ${name}“
println myname.getClass()
當需要引用多行的時間可以用三個''' \
def line = '''
line one
line two
line three
'''
字符串連接
println "zhang" + "da" +"wei"
def name1="zhang"
println "${name1}" + "da" +"wei"
字符串相等
def name1="張大偉";//== equals
def name2="張大偉1";
if (name1.is(name2))
{
println "名字一等于名字2"
}
字符串類型的轉換
String a='1'
int b=a as int
數據類型
在Groovy中并沒有明確的字符變量表示形式,我們必須明確指明:
char c1 = 'A' // 明確指定給一個字符變量
def c2 = 'B' as char // 用as關鍵字
def c3 = (char) 'C' // 強制類型轉換
其它類型short、int、long、java.lang.BigInteger、loat(32)、double(64)
byte b = 1
char c = 2
short s = 3
int i = 4
long l = 5
BigInteger bi = 6
Booleans類型
Boolean類型沒啥解釋的、兩個值true或者false
def isboy = true
boolean isgirl= false
列表類型 List默認情況下Groovy的列表使用的是java.util.ArrayList,用中括號[]括住,使用逗號分隔:
def numbers = [1, 2, 3]
def list = ['a', 'b', 'c', 'd']
println list[0]
//賦值
list[3] = 100 //修改
list<<10 //在 aList 里面添加數據
list[4]='e'
//二維
def erwei = [[0, 1], [2, 3]]
erwei[1][0] == 2
數組在Groovy中,沒有數組的字面量定義方式。
和特定類型列表的定義方式一樣,我們需要使用as操作符或顯式地分配給一個數組類型的變量:
String[] list1 = ["Java", "Groovy", "JavaScript"]
int[] array = [0,1,2,3]
def num = [1, 2, 3] as int[] // 使用as操作符
def a = new String[2]
映射(鍵-值表 Map)
Groovy使用中括號[]來定義映射,元素需要包含key和value使用冒號分隔,元素與元素之間用逗號分隔:
def map = ['name':'xiaowang','age':14,'sex':'boy']
//2、添加項:
map = map+['weight':25] //添加體重
map.put('length',1.27) //賦值
map.father='dawang' //添加
println map
Range
范圍,list的一種擴展
def range = 1..5
開始結束
range.size() //長度
range.contains( 5) //是否包含元素5
range.last()
控制語句
for for..in while break contiue
for循環用戶遍歷一組值
for(int i = 0;i<5;i++)
{ println(i)}//
while語句首先通過計算條件表達式(布爾值)來執行,如果結果為真,則執行while循環中的語句。
int count = 0;
while(count<5) {
println(count);
count++;
}
break中斷操作
continue 繼續
條件語句
if if..else swtich
條件聲明需要程序指定一個或者多個條件進行判斷,如果條件被確定為真,則要執行一個或多個語句;如果條件被確定為假,則要執行其他語句。
int a =11
if (a>100){
print "a大于10"
}
swtich
age = 36
switch (age) { case 10..26: println "年輕"break case 27..37: println "中年"break case 38..46: println "老年"println state break}
方法
Groovy中的方法是使用返回類型或使用def關鍵字定義的。方法可以接收任意數量的參數。定義參數時,不必顯式定義類型。可以添加修飾符,如public,private和protected。默認情況下,如果未提供可見性修飾符,則該方法為public。
def getnum()
{//}
方法調用
智能推薦
Groovy_Learn_003_Groovy基本語法
Groovy基本語法 為了了解Groovy的基本語法,讓我們先看一個簡單的Hello World程序 在Groovy中導入語句import語句可以用來導入,可以在你的代碼可以使用其他庫的功能。這是通過使用在 Import 關鍵字完成。 下面的示例演示了如何使用MarkupBuilder的類,它可能是最常用的創建HTML或XML標記的類之一。 默認情況下,Groovy在代碼中包括以下庫,因此您不需要...
Groovy_Learn_002_Groovy環境
Groovy環境 有多種方式來獲得Groovy環境設置 下載安裝,獲得Windows安裝部分 ----- 安裝過程就不詳細的介紹了。 也可下載壓縮包 下載后,把壓縮包解壓到相應的位置,然后再環境變量的Path里面添加解壓后的路徑(到解壓的bin目錄下)。配置好后,然后運行groovy -v,可以看到如下圖 到這里,就安裝好了。 Hello Groovy Dos中運行groovyconsole之后,...
Linux下安裝groovy & Idea安裝groovy
1.下載groovy-2.5.3 下載鏈接:某盤鏈接 提取碼:q3ir 如果鏈接失效,請留言。 2.Linux安裝groovy 3.Idea安裝groovy 下載groovy-2.5.3.zip后,本地解壓縮,記住路徑,如:/Download/groovy-2.5.3 打開Idea,右鍵項目,選擇Project Structure -> Global Libraries -> 加號 -...
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
猜你喜歡
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...
Linux C系統編程-線程互斥鎖(四)
互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...
統計學習方法 - 樸素貝葉斯
引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...