跳到主要内容

label_undefined

无法引用未定义的标签“{0}”。

描述

#

当分析器发现引用了在引用该标签的 breakcontinue 语句作用域内未定义的标签时,会产生此诊断信息。

示例

#

以下代码会产生此诊断信息,因为标签 loop 在任何地方都未定义

dart
void f() {
  for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
      if (j != 0) {
        break loop;
      }
    }
  }
}

常见修复方法

#

如果标签应位于最内层的 doforswitchwhile 语句上,则移除该标签

dart
void f() {
  for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
      if (j != 0) {
        break;
      }
    }
  }
}

如果标签应位于其他语句上,则添加该标签

dart
void f() {
  loop: for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
      if (j != 0) {
        break loop;
      }
    }
  }
}