我今天开始学习Dart,我发现我的谷歌技能很难找到一些东西.
我怎样才能在非空 case 中失败呢?
我的用例是这样的:我正在编写一个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());
}
现在,第二个 Select 看起来几乎不错,但是你要记住有11个 case ,这意味着有11if (type in [])
个 case ,这是我想要的更多的打字.
那么,达特有没有// //$FALL-THROUGH$
来个我不知道的?
谢谢你.