结构控制是让一个程序语言控制代码执行的流程,groovy中的结构控制简单的如 if-else,while,switch和try-catch-finally,这与java的结构控制是一样的。
在条件中,null被处理成false,not-null被处理成true,for循环有一个for(int x){body}的标记,x可以是任何对象,groovy知道怎样迭代它,例如Iterator/enumeration/collection/range/map/任何对象
在groovy中,for循环经常被有闭包作为参数的迭代方法替代,列表2.6给出了一个例子。
表 2.6 控制结构[code]//在一行的if语句
if (false) assert false
//null表示false if (null){
assert false
}
else{
assert true
}
//典型的while def i = 0
while (i < 10) {
i++
}
assert i == 10
//迭代一个range def clinks = 0
for (remainingGuests in 0…9) {
clinks += remainingGuests
}
assert clinks == (10*9)/2
//迭代一个列表
def list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for (j in list) {
assert j == list[j]
}
//以闭包为参数的each方法
list.each() { item ->
assert item == list[item]
}
//典型的switch switch(3) {
case 1 : assert false; break case 3 : assert true; break
default: assert false
}
[/code]表2.6的代码本身就能说明问题,groovy控制结构跟java的语法十分相似。
能感受到groovy的印象,它是混合了java友好性和一些新的功能的语言明白了如何写第一个groovy代码。