通过模式匹配,可以很容易地创建如下条件:
if (json case {"data": final Map data, "changed": final List changed}
when changed.isNotEmpty) {
... perform some work with 'data' and 'changed'.
}
但是,如果您要应用多个模式,这会导致代码不可读(就嵌套而言)。
我想做的是有模式保护子句,这样我就可以写这样的东西:
if (NOT json case {"data": final Map data, "changed": final List changed}
when changed.isNotEmpty) {
return;
}
... perform some work with 'data' and 'changed'.
https://dart.dev/language/pattern-types列出了 Dart 支持的模式类型,并且没有提到逻辑非模式。
但是,您仍然可以通过执行以下操作来避免厄运金字塔: