label_undefined 진단: 정의되지 않은 라벨 참조
label_undefined 진단: 정의되지 않은 라벨 참조
Dart 분석기가 만들어 내는 label_undefined 진단에 대해 설명해요.
출처: label_undefined
본문
정의되지 않은 라벨 {0}은(는) 참조할 수 없어요.
설명
분석기는 그 라벨을 참조하는 break 또는 continue 문의 범위에 정의되어 있지 않은 라벨에 대한 참조를 발견할 때 이 진단을 만들어요.
예시
다음 코드는 라벨 loop이 어디에도 정의되어 있지 않기 때문에 이 진단을 만들어요.
void f() {
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if (j != 0) {
break loop;
}
}
}
}
흔한 해결 방법
라벨이 가장 안쪽에 감싸는 do, for, switch, 또는 while 문에 있어야 한다면, 라벨을 제거해요.
void f() {
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if (j != 0) {
break;
}
}
}
}
라벨이 다른 문에 있어야 한다면, 라벨을 추가해요.
void f() {
loop:
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if (j != 0) {
break loop;
}
}
}
}