"dart"有很多替代方案来替代大量的if/else/elseif。
"dart"有很多替代方案来替代大量的if/else/elseif。
我想用另一个字符串在Dart中替换URL字符串。
例如:
if (url == "http://www.example.com/1") { home = "example"; } else if (url == "http://www.example.com/2") { home = "another example"; }
难道没有更好的方式,更少的代码且可能更快吗?我需要做这个任务60多次...
admin 更改状态以发布 2023年5月21日
我喜欢Muldec的答案,因为我个人觉得switch语句有点难以阅读。我也喜欢有一个默认选项,这样你就可以“重新定义”switch语句了。另一个好处是你可以将它用作内联表达式,并且它仍然是类型安全的......像这样。
case2(myInputValue, { "http://www.example.com/1": "example", "http://www.example.com/2": "another example", "http://www.example.com/3": "yet another one", }, "www.google");
case2代码可以是这样的
TValue case2( TOptionType selectedOption, Map branches, [ TValue defaultValue = null, ]) { if (!branches.containsKey(selectedOption)) { return defaultValue; } return branches[selectedOption]; }