我正在尝试根据布尔值决定调用哪个函数。
myBooleanVariable ? function1() : function2();
Unity提供错误:
语句中的表达式只能为其执行 副作用。
那为什么这不起作用,我怎样才能使它发挥作用?
感谢您的帮助!
答案 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();