If statement 许多if-ElseIf的省道交替
我想用另一个字符串替换Dart中的URL字符串。 例如:If statement 许多if-ElseIf的省道交替,if-statement,flutter,dart,If Statement,Flutter,Dart,我想用另一个字符串替换Dart中的URL字符串。 例如: if(url==”http://www.example.com/1") { home=“示例”; }else if(url==”http://www.example.com/2") { home=“另一个例子”; } 难道没有更好的方法,代码更少,速度更快吗?我必须这样做60多次。如果你想要更少的代码,你可以这样做: homes = { "http://www.example.com/1": "example", "http:/
if(url==”http://www.example.com/1") {
home=“示例”;
}else if(url==”http://www.example.com/2") {
home=“另一个例子”;
}
难道没有更好的方法,代码更少,速度更快吗?我必须这样做60多次。如果你想要更少的代码,你可以这样做:
homes = {
"http://www.example.com/1": "example",
"http://www.example.com/2": "another example",
"http://www.example.com/3": "yet another one",
};
home = homes[url];
您可以使用switch语句
switch(variable_expression) {
case constant_expr1: {
// statements;
}
break;
case constant_expr2: {
//statements;
}
break;
default: {
//statements;
}
break;
}
参考资料
String originalUrl = 'https://www.example.com';
if (url == originalUrl + '/1') {
}
我喜欢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");
案例2的代码可能是
TValue case2<TOptionType, TValue>(
TOptionType selectedOption,
Map<TOptionType, TValue> branches, [
TValue defaultValue = null,
]) {
if (!branches.containsKey(selectedOption)) {
return defaultValue;
}
return branches[selectedOption];
}
t值案例2(
TopionType Selected选项,
地图分支[
TValue defaultValue=null,
]) {
如果(!branchs.containsKey(selectedOption)){
返回默认值;
}
返回分支[选择选项];
}
better way(更好的方法)是高度基于意见的。在什么方面更好?可读性?可维护性?速度?如果有更好的方法,特别是在代码较少的情况下,您的第二个案例可能会被完全删除,因为它的条件永远不会是真的…这只是一个打字错误。。当然,最后会有另一个数字。或者你可以用开关盒