【发布时间】:2021-12-05 10:37:18
【问题描述】:
在 Dart 中,可以使用switch statements 而不是很长的if-then-else
var command = 'OPEN';
switch (command) {
case 'CLOSED':
executeClosed();
break;
case 'OPEN':
executeOpen();
break;
default:
executeUnknown();
}
但有时我们只想根据条件提供一个值。例如,在函数调用、类实例化或设置变量的值等内部。
例如
// Doesn't work, but wish it did
MakeNametag(
adjustFontSize: switch(status) {
case 'young' : return 'large';
case 'old' : return 'largest';
default: return 'normal';
} //end switch
}
);
如果您只有两种选择,一种可以使用conditional operator(有时称为三元运算符)
// Works
MakeNametag(
adjustFontSize: ['old','young'].contains(status) ? 'larger' : 'normal');
(javascript有相同的操作符和问题)
【问题讨论】:
-
你问的是 Dart 还是 JavaScript?选择一个。
-
编辑标题和标签以专注于 Dart。三元运算符在两者中的工作方式相似,但我意识到答案可能因语言而异。