Set과 Set을 매치시킬 수도 있다.1
WhenExpressions/MixColors.kt
package whenexpressions
import atomictest.eq
fun mixColors(first: String, second: String) =
when (setOf(first, second)) {
setOf("red", "blue") -> "purple"
setOf("red", "yellow") -> "orange"
setOf("blue", "yellow") -> "green"
else -> "unknown"
}
fun main() {
mixColors("red", "blue") eq "purple"
mixColors("blue", "red") eq "purple"
mixColors("blue", "purple") eq "unknown"
}
mixColors() 안에서는 Set을 when의 인자로 사용해 여러 다른 Set과 비교한다. 여기서는 원소 순서가 중요하지 않으므로 Set을 사용했다. 그래서 "red"와 "blue"를 섞었을 때와 "blue"와 "red"를 섞었을 때 같은 결과를 얻을 수 있다.