带范围的飞镖开关

Eik*_*ike 7 dart

飞镖有没有办法在范围之间切换。除了我什么也找不到

例如:

switch(response.statusCode) {
  case 200..300: return "OK";
  case 400..500: return "Error";
  default: break;
}
Run Code Online (Sandbox Code Playgroud)

小智 26

接受的答案不再完全正确!使用 dart 3.0 现在可以编写:

 switch(response.statusCode) {
  case >= 200 && < 300: return "OK";
  case >= 400 && < 500: return "Error";
  default: break;
 }

// or even

return switch(response.statusCode) {
  >= 200 && < 300 => "OK";
  >= 400 && < 500 => "Error";
  _ => "Unexpected Case";
 }
Run Code Online (Sandbox Code Playgroud)


Rém*_*let 7

开关不可用。if/else if>=<=一起使用可获得相同的结果。

if (response.statusCode >= 200 && response.statusCode <= 300) {
    return "OK";
}
else if (response.statusCode >= 400 && response.statusCode <= 500) {
    return "Error";
}
Run Code Online (Sandbox Code Playgroud)

  • 感谢那。这实际上就是我所做的。我只是想知道是否有更聪明的解决方案。 (3认同)