7、逻辑分支
(1)if-else语句
l Groovy提供Java相同的if-else语句
x = falsey = falseif ( !x ) { x = true}assert x == trueif ( x ) { x = false} else { y = true}assert x == yl Groovy也支持三元操作符
y = 5x = (y > 1) ? "worked" : "failed"assert x == "worked"(2)switch语句
l Groovy的switch语句兼容Java代码,不同之处在于Groovy的switch语句能够处理各种类型的switch值,可以做各种类型的匹配
Ø case值为类名匹配switch值为类实例
Ø case值为正则表达式匹配switch值的字符串匹配该正则表达式
Ø case值为集合匹配switch值包含在集合中,这包括ranges
Ø 除了上面的,case值与switch值相等才匹配
x = 1.23result = ""switch ( x ) { case "foo": result = "found foo" // lets fall through case "bar": result += "bar" case [4, 5, 6, 'inList']: result = "list" break case 12..30: result = "range" break case Integer: result = "integer" break case Number: result = "number" break default: result = "default"}assert result == "number"l switch语句的工作原理:switch语句在做匹配case值时调用isCase(switchValue)方法,缺省调用equals(switchValue),但是已经被重载成各种类型,如类,正则表达式、集合等等
l 可以创建自定义的匹配类,增加isCase(switchValue)方法来提供自定义的匹配类型
博客介绍了Groovy的逻辑分支语句。在if - else语句方面,Groovy与Java相同且支持三元操作符。在switch语句上,它兼容Java代码,能处理多种类型的switch值,如类名、正则表达式、集合等,工作时调用isCase方法,还可自定义匹配类。
1106

被折叠的 条评论
为什么被折叠?



