我今天开始学习 Dart,我遇到了一些我的 google 技能无法找到的东西。
我如何在非空的情况下出现故障?
我的用例是这样的:我正在编写一个 sprintf 实现(因为 dart 也没有这个),除了这个失败的东西之外,它可以工作。例如,在解析变量类型时,您可以使用“%x”与“%X”,其中大写类型告诉格式化程序输出应该是大写。
半伪代码如下所示:
bool is_upper = false;
switch (getType()) {
case 'X':
is_upper = true;
case 'x':
return formatHex(is_upper);
}
我能想到的其他方法是以下之一
1:
switch (getType()) {
case 'X': case 'x':
return formatHex('X' == getType());
}
2:
var type = getType();
if (type in ['x', 'X']) {
return formatHex('X' == getType());
}
现在,第二个选择几乎看起来不错,但是您必须记住有 11 个案例,这意味着有 11 个if (type in [])
,这是我想要的更多类型。
那么,飞镖有一些// //$FALL-THROUGH$
我不知道的东西吗?
谢谢。