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一致

相关文章
相关标签/搜索