더북(TheBook)

SetSet을 매치시킬 수도 있다.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() 안에서는 Setwhen의 인자로 사용해 여러 다른 Set과 비교한다. 여기서는 원소 순서가 중요하지 않으므로 Set을 사용했다. 그래서 "red""blue"를 섞었을 때와 "blue""red"를 섞었을 때 같은 결과를 얻을 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.