1. 程式人生 > >Groovy的基礎語法

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迴圈中使用。