带有枚举的dart开关案例中的缺少案例子句错误

问题描述 投票:0回答:1

我为枚举编写了这个简单的开关案例:

enum Operation {
  CREATE,
  UPDATE,
  DELETE,
  READ
}

...

void check(Operation op) {
    switch(op) { // dart complains here
      case Operation.CREATE:
        insert();
        break;
      case Operation.UPDATE:
        update();
        break;
      case Operation.DELETE:
        delete();
        break;
}

它在switch(op)行抱怨此错误:

错误:“读取”的缺少大小写子句。尝试为缺少的常量添加case子句,或添加默认常量。

如果我按照建议进行操作并添加READ大小写或default大小写,它会得到解决。但是我的问题是:为什么会这样呢?为什么我不能遗漏一个案件?如果我不想在这里检查该怎么办?我检查了dart language docs,它说:

您可以在switch语句中使用枚举,如果不处理所有枚举的值,则会收到警告

但是就我而言,这绝对是错误,而不是警告。我正在使用dart开发Flutter应用程序(如果有所作为)。

flutter dart enums switch-statement
1个回答
0
投票

是这样,您被迫显式处理所有用例,这将导致更少的错误。您将需要添加一个default,它等效于“当null或任何意外的枚举值时”,或显式列出所有剩余的枚举值。

© www.soinside.com 2019 - 2024. All rights reserved.