跳至主要內容

no_default_cases

實驗性

無預設 case。

詳細資訊

#

列舉和類列舉類別的 switch 陳述式不應使用 default 子句。

類列舉類別定義為具體的(非抽象)類別,具有

  • 僅限私有非 Factory 建構式
  • 兩個或多個靜態常數字段,其類型為封閉類別,以及
  • 在定義函式庫中沒有該類別的子類別

務必在 switch 陳述式之外定義預設行為。

不良範例

dart
  switch (testEnum) {
    case TestEnum.A:
      return '123';
    case TestEnum.B:
      return 'abc';
    default:
      return null;
  }

良好範例

dart
  switch (testEnum) {
    case TestEnum.A:
      return '123';
    case TestEnum.B:
      return 'abc';
  }
  // Default here.
  return null;

啟用

#

若要啟用 no_default_cases 規則,請在您的 analysis_options.yaml 檔案中的 linter > rules 下新增 no_default_cases

analysis_options.yaml
yaml
linter:
  rules:
    - no_default_cases

如果您改用 YAML 對應語法來設定 linter 規則,請在 linter > rules 下新增 no_default_cases: true

analysis_options.yaml
yaml
linter:
  rules:
    no_default_cases: true