Groovy는 자바의 평범한 if-else 문법을 지원합니다:
def x = false
def y = false
if ( !x ) {
x = true
}
assert x == true
if ( x ) {
x = false
} else {
y = true
}
assert x == y
|
또한 삼항연산자도 지원합니다:
def y = 5 def x = (y > 1) ? "worked" : "failed" assert x == "worked" |
Groovy의 switch 문은 자바의 switch 문에 대한 하위호환성을 제공합니다. 여러 경우에 대해 하나의 코드를 공유하고자 하는 경우 "case" 사이를 지나 다음 "case"로 넘어갈 수 있습니다.
Groovy switch 문의 차이점은 비교가 수행될 수 있는 모든 값들이 사용될 수 있다는 점입니다.
def x = 1.23
def result = ""
switch ( x ) {
case "foo":
result = "found foo"
// 다음 case로 넘어감
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"
|
Switch 무은 다음 종류의 비교를 지원합니다
case 문은 case에 주어진 값에 대해 isCase(switchValue) 메서드를 호출함으로써 일치를 판별합니다. isCase() 메서드의 기본 구현은 equals(switchValue) 를 호출 하도록 되어 있지만 각 타입에 따라 다양하게 재정의되어 있습니다.
따라서 switch/case에서 여러분이 만든 타입이 사용될 수 있게 하려면 isCase(switchValue) 를 제정의하면 됩니다.matching.