Я хочу включить животных и предпринять соответствующие действия.
switch (animal.runtimeType) {
case Cat:
animal.pet();
break;
case Crocodile:
animal.runAway();
break;
default:
print('Not a known animal.');
}
Если бы я был цепочкой if, это работало бы, так как область видимости знала бы тип animal
в блоке if (animal is Cat){}
.
По какой-то причине это не относится к операторам switch.
В этом случае я получу ошибку
The method pet() isn't defined for the class animal
Как я могу использовать утверждение случая в блоке дела?
Я не могу использовать as
, так как мой CI Lint не позволяет этого (что хорошо), и нет смысла использовать операцию If внутри кейса, поскольку использование оператора if-else было бы меньше кода и предлагало бы больше удобство и простота использования.