Я написал этот простой случай переключения для перечисления:
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. Попробуйте добавить предложение case для отсутствующей константы или добавить константу по умолчанию.
Исправится, если я последую предложению и добавлю регистр READ
или регистр default
. Но мой вопрос: почему это так? Почему я не могу пропустить дело? Что если я не хочу проверять это дело здесь? Я проверил dart language docs , который говорит:
Вы можете использовать перечисления в выражениях switch, и вы получите предупреждение, если вы не обработаете все значения перечисления
Но в моем случае это определенно ошибка, а не предупреждение. Я использую dart для разработки флаттера (если это имеет значение).