6.4.10 완전성 검사(Exhaustiveness checks)
6.4.10 완전성 검사(Exhaustiveness checks)
컴파일러는 가능한 case가 빠지지 않도록 확인합니다:
switch (true) {
case false:
} // Unmatched patterns: true
매칭된 Bool 타입은 true와 false 두 값을 허용하지만 false만 검사됩니다.
Int, Float 또는 String에 매칭할 때, switch에서 값이 요구되지 않으면(즉 블록 수준에 나타나면) 완전성은 검사되지 않아요.
본문
컴파일러는 switch가 주어진 타입의 모든 가능한 값을 커버하는지 확인해요. Bool에 false만 케이스가 있으면 경고합니다. Int/Float/String 매칭은 값 요구가 없으면(블록 수준) 검사하지 않습니다.