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"를 섞었을 때 같은 결과를 얻을 수 있다.

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