标签:
Groovy的方法定义使用def关键字,并且参数名后面的括号不能去掉,与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:
与Java语法相似,当while内的代码只有一行时可以去除{}
for:
for (variable in range) | for (variable in array) | for (variable in string) | for (variable in 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循环里的代码只有一行时也可以去除{}简写。
if:
用法与Java一致,只是当if或else中的代码只有一行,那么可以去掉{}简写
switch|case|default:
用法与Java一致,只是groovy的case后面支持的验证方式更加强大,支持range、array、regex,当swotch传入参数值在range范围中,或在array中存在,或匹配正则表达式,将执行case后的语句;
break|continue:
用法同Java一致
标签:
原文地址:http://my.oschina.net/u/1413049/blog/468274