6.4.10 완전성 검사(Exhaustiveness checks)

6.4.10 완전성 검사(Exhaustiveness checks)

컴파일러는 가능한 case가 빠지지 않도록 확인합니다:

switch (true) {
    case false:
} // Unmatched patterns: true

매칭된 Bool 타입은 truefalse 두 값을 허용하지만 false만 검사됩니다.

Int, Float 또는 String에 매칭할 때, switch에서 값이 요구되지 않으면(즉 블록 수준에 나타나면) 완전성은 검사되지 않아요.

출처: Exhaustiveness checks

본문

컴파일러는 switch가 주어진 타입의 모든 가능한 값을 커버하는지 확인해요. Boolfalse만 케이스가 있으면 경고합니다. Int/Float/String 매칭은 값 요구가 없으면(블록 수준) 검사하지 않습니다.

더 알아보기