跳到主要內容

no_default_cases

實驗性

禁止使用 default 分支。

詳情

#

針對列舉和類列舉的 switch 語句不應使用 default 子句。

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

  • 僅私有的非工廠建構函式
  • 兩個或更多型別為 enclosing 類的 static const 欄位,並且
  • 在定義庫中該類沒有子類

建議在 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 map 語法配置 linter 規則,請在 linter > rules 下新增 no_default_cases: true

analysis_options.yaml
yaml
linter:
  rules:
    no_default_cases: true