Groovy學習(三)

方法:

Groovy的方法定義使用def關鍵字,而且參數名後面的括號不能去掉,與java不一樣的是不須要參數類型和返回值類型。java

class MethodPractice {
    static main(args) {
        def obj = new MethodPractice();
        def num = obj.method1(0);
        println num;           //null
        println obj.method2(); //2
        println obj.method3(); //3
    }
    def method1(arg1, arg2 = 1) {
        println arg1;
        println arg2;
    }
    def method2() {
        1;
        2;
    }
    def method3() {
        return 3;
        println 2;
    }
}


如上方法的參數能夠設默認值,當這個參數沒有傳入時,使用默認值,同時每一個方法或表達式都是有返回值的,沒有明確指定return時,默認返回最後執行語句的值,return以後的語句不會被執行。正則表達式

流程控制語句:

while:spa

與Java語法類似,當while內的代碼只有一行時能夠去除{}code

for:string

for (variable in range)  |   for (variable in array)  | for (variable in string)  | for (variable in hash)hash

class IteratorPractice {
    static main(args) {
        def hash = [ 'rex' : 1, 'david' : 2, 'john' : 3 ];
        for (user in hash)
            println "${user.key} : ${user.value}";
        for (str in "Hello")
            println str;
        for (num in 1..10)
            println num;
        for (num in [1, 2, 3, 4])
            println num;
    }
}

for循環遍歷Hash時,variable.value是hash的值,varuable.key是hash的key,當for循環裏的代碼只有一行時也能夠去除{}簡寫。it

if:for循環

用法與Java一致,只是當if或else中的代碼只有一行,那麼能夠去掉{}簡寫class

switch|case|default:循環

用法與Java一致,只是groovy的case後面支持的驗證方式更增強大,支持range、array、regex,當swotch傳入參數值在range範圍中,或在array中存在,或匹配正則表達式,將執行case後的語句;

break|continue:

用法同Java一致

相關文章
相關標籤/搜索