如何在UnityScript中调用三元运算符中的函数?

时间:2013-12-16 07:05:40

标签: unity3d ternary-operator unityscript side-effects

我正在尝试根据布尔值决定调用哪个函数。

myBooleanVariable ? function1() : function2();

Unity提供错误:

  

语句中的表达式只能为其执行   副作用。

那为什么这不起作用,我怎样才能使它发挥作用?

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

  

那为什么这不起作用,我怎样才能使它发挥作用?

如果它不起作用(我没有Unity可用),则意味着UnityScript(Unity的JavaScript实现)不支持expression statement。这使得它与规范不一致,并且意味着相当数量的JavaScript习语不适用于它。你的行是完全有效的JavaScript / ECMAScript。您可以检查是否有“lint”式选项可以启用/禁用。

解决方案是使用表达式的结果,或使用if重写它。

使用结果:

var f = myBooleanVariable ? function1() : function2();

使用if

if (myBooleanVariable) {
    function1();
}
else {
    function2();
}

或者如果你真的希望if在一行:

if (myBooleanVariable) function1(); else function2();