1. groovy逻辑控制介绍
Grvoovy逻辑控制主要包括:
1.1. 顺序逻辑
按照正常顺序但不往下执行
1.2. 条件逻辑
包括if/else和switch/case,其中if/else和Java使用基本一样,groovy对switch/case做了比较大的扩展。
1.3. 循环逻辑
包括while循环和for循环,其中while和Java使用基本一样,groovy对for循环新增了一些特性。
2. 对switch/case的扩展
Groovy中的switch/case中的判断参数可以传入任意类型,包括对象类型,从这个特性上来讲,完全可以取代if/else。
def x = 1.23
def result
switch(x) {
case 'foo':
result = 'found foo'
break
case 'bar':
result = 'bar'
break
case [4, 5, 6, 'inList']:
resule = 'list'
break
case 12..30:
result = 'range'
break
case Integer:
result = 'integer'
break
case BigDecimal:
result = 'big decimal'
break
default:
result = 'default'
}
println result
输出结果
big decimal
switch/case允许有多个匹配的值,例如上面代码修改成:
case [1.23, 4, 5, 6, 'inList']:
result = 'list'
break
输出结果:
list
因为它优先匹配到list
3. for循环
3.1. 对范围的for循环
Groovy中for循环对返回数据结构循环写法如下:
def sum = 0
for(i in 0..9) {
sum += i
}
println sum
输出结果:
45
3.2. 对List的循环
def sum = 0
for(i in [1, 2, 3, 4, 5, 6, 7, 8, 9]) {
sum += i
}
println sum
输出结果:
45
3.3. 对Map循环
对Map的循环可以直接获取它的key和value进行循环,不需要像Java一样必须获取迭代器。
def sum = 0
for(i in ['a': 1, 'b': 2, 'c': 3]) {
sum += i.value
}
println sum
输出结果
6