企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
不像其他许多语言,Haxe里的 if 和 switch 语句可以返回值。这是非常有用的来减少不必要的代码,并增加可读性。例如,你可以选择分配if或者switch的返回值到一个单独的变量或者函数表现,而不用重复的在每个单独的case 和else if 语句执行分配变量或者调用函数的任务。所以,在if语句情况下,你可以如下这样做: ~~~ var myInt = if ( myVal == “one” ) 1; else if ( myVal == “two” ) 2; else if ... ~~~ 而一个switch语句看起来是这样: ~~~ var myInt = switch ( myVal ) { case “one”: 1; case “two”: 2; } ~~~ 这些条件语句可以作为一个值传递到一个函数,所以上一个例子可以这样输出: ~~~ trace( if ( myVal == “one” ) 1; else if ( myVal == “two” ) 2; else -1; ); ~~~ 和: ~~~ trace( switch ( myVal ) { case “one”: 1; case “two”: 2; }); ~~~ 这都是合法的。然而,为了更加易读,最好传递返回值到一个临时变量,然后传递这个变量到到函数。 从一个单独行的 if 语句返回值可以实现类似C语言中三元操作符的功能。 ~~~ var myInt = if ( myVal == “one” ) 1 else 2; ~~~ 这和C中的是等效的: ~~~ int myInt = ( strcmp( myVal, “one” ) ) ? 1 : 2; ~~~ 当从一个 switch 或者 if 语句返回值,重要的是确保被返回的值的类型是匹配的,否则将引起编译时错误。如果没有值被打算返回,那么意外返回的值,比如那些间接被一个函数调用提供的,可能是不同类型。如果没有在一个if 或者 switch语句中返回值,那么Void类型会被返回。