Groovy的基礎語法
1、沒有型別的java
作為動態語言,groovy中所有的變數都是物件(類似於.net framework,所有物件繼承自java.lang.Object),
在宣告一個變數時,groovy不要求強制型別宣告,僅僅要求變數名前使用關鍵字def。
def var="hello world"
println var
println var.class
你可以看到程式最後輸出了var的實際型別為:java.lang.String
作為例外,方法引數和迴圈變數的宣告不需要def。
2、不需要的public
你可以把main方法前面的public去掉,實際上,groovy中預設的修飾符就是public,所以public修飾符你根本就不需要寫,這點跟java不一樣。
3、一切皆物件
聽起來象是“眾生平等”的味道,事實上groovy對於物件是什麼型別並不關心,一個變數的型別在執行中隨時可以改變,一切根據需要而定。
如果你賦給它boolean ,那麼不管它原來是什麼型別,它接受boolean值之後就會自動把型別轉變為boolean值。看下面的程式碼:
def var="hello "+
"world"+
",groovy!"
println var;
println var.class;
var=1001
println var.class
輸出結果:
hello world,groovy!
class java.lang.String
class java.lang.Integer
var這個變數在程式執行中,型別在改變。一開始給它賦值String,它的型別就是String,後面給它賦值Integer,它又轉變為Integer。
迴圈
程式碼:
def var="hello "+
"world"+
",groovy!"
def repeat(val){
for(i = 0; i < 5; i++){
println val
}
}
repeat(var)
輸出:
hello world,groovy!
hello world,groovy!
hello world,groovy!
hello world,groovy!
hello world,groovy!
注意迴圈變數i前面沒有def。當然也沒有java中常見的int,但如果你非要加上int也不會有錯,
因為從Groovy1.1beta2之後開始(不包括1.1beta2),groovy開始支援java經典的for迴圈寫法。
此外,上面的for語句還可以寫成:
for(i in0..5)
這樣的結果是一樣的。
範圍
這個跟pascal中的“子界”是一樣的。在前面的for迴圈介紹中我們已經使用過的for(i in0..5)這樣的用法,其中的0..5就是一個範圍。
範圍 是一系列的值。例如 “0..4” 表明包含 整數 0、1、2、3、4。Groovy 還支援排除範圍,“0..<4” 表示 0、1、2、3。還可以建立字元範圍:“a..e” 相當於 a、b、c、d、e。“a..<e” 包括小於 e 的所有值。
範圍主要在for迴圈中使用。