可以更好地完成对null的默认检查吗?

时间:2012-08-30 08:49:36

标签: actionscript-3 actionscript null-check

我经常发现自己需要写下类似的东西:

_parsedBetData["prizeLevel"] = params["prizeLevel"] == null ? "default" : params["prizeLevel"]; 

我很好奇是否有更好的方法可以做到这一点?我主要担心的是我必须写两次 params [“prizeLevel”]

当然,这可以提取到类似于以下的函数:

_parsedBetData["prizeLevel"] = defaultIfNull(params["prizeLevel"], "foo");

function defaultIfNull(o:*, default:*):* {
    return o == null ? default : o;
}

但是我必须从我想要进行此检查的任何地方访问此功能。因此,我想知道是否有一些聪明的方法来解决这个问题。也许在某种魔法的帮助下?或者是原型/动态的东西在这里适用?

我迄今为止提出的最佳解决方案是在代码IDE中创建一个宏,使一些特定的键盘组合写出来。但我敢打赌,有人有更好的主意。

2 个答案:

答案 0 :(得分:4)

也许logical OR assignment正是您所寻找的:)

你可以做到

  

params [“prizeLevel”] || =“默认”;

如果您希望它在其他变量中,请使用简单的OR operator

  

_parsedBetData [“prizeLevel”] = params [“prizeLevel”] || “默认”;

<强> - 编辑 -

32bitkid和cleong都是对的。你应该使用逻辑运算符,而不是按位运算符。

答案 1 :(得分:2)

这可能是您正在寻找的语法:

_parsedBetData["prizeLevel"] = params["prizeLevel"] || "default";

要将_parsedBetData [“prizeLevel”]设置为默认值(如果为null),您可以

_parsedBetData["prizeLevel"] ||= "default";

这可能不会完全符合您的要求,因为空字符串的计算结果也为false。