本文主要是介绍haXe语言中改进的switch...case语法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
haXe语言的switch...case语法乍看上去和C++/Java等差不多,但实际上更严谨和易用。
无需break
首先,haXe中的switch...case中无需break语句,这样就完全避免了因忘写break而造成运行期错误,我敢说这种错误几乎是每个类java语言程序员都犯过的吧。
那么,这是不是意味着fall through技巧也没法使用了呢?也就是类似下面的写法, 即B和C共享同一处理逻辑:
switch (flag) {
case FLAG_A:
// do something
break;
case B: // fall through
case C:
// do something else
break;
}
其实haXe语言用更优雅的方式给我们了解决方案,即case后面可以有多个逗号分隔的表达式,那么上例在haXe中就可写为:
switch (flag) {
case FLAG_A:
// do something
case B, C:
// do something else
}
这样的代码是不是更清晰和健壮呢?
case后可以是表达式
java等语言中的case后只能用数字常量,甚至字符串常量都不行,haXe的switch...case则灵活的多,可以用变量甚至表达式,如:
switch (v) {
case 0:
e1;
case foo(1):
e2;
case 65, 90:
e3;
default:
e4;
}
switch语句作为一个表达式是可以返回值的
其实这是haXe语言级的特性,haXe中的所有控制语句其实都是作为表达式处理的,如if语句,switch语句等,具体看下面的例子:
var val = switch (v) {
case 0:
e1;
case foo(1):
e2;
case 65, 90:
e3;
default:
e4;
}
switch表达式的值就是适用case分支语句块中最后一个语句(表达式)的值。
这篇关于haXe语言中改进的switch...case语法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!