我知道有一种方法论'开发人员应该编写这样的函数,返回值总是相同的类型。所以,假设我们有一个函数往往会返回一个数组,并且会发生不必要的事情,比如参数无效,在这种情况下我们不会返回null
,而是返回一个空数组{{1 }}。然后方法的用户可以肯定,返回的值将是一个数组。
我不记得这个原则的名称,你能帮帮我吗?
由于
相反:
[]
我们必须根据以下原则设置默认值:
function(arg) {
var res;
if (arg) {
return ['example'];
}
return res;
}
注意,在第一种情况下,返回值(未定义/数组)中存在竞争条件,而在后一种情况下,我们返回一个数组。
答案 0 :(得分:1)
基本上,下面的操作是为了避免在调用方法中执行空值检查。对于数组类型,不仅,而且对于处理null / undefined返回的所有对象类型,
。function(arg) {
var res = []; // initialization of an object
if (arg) {
res = ['example'];
}
return res;
}
例如,
当你调用上面的函数时,返回的值不可能是null或undefined。这消除了添加
if((var x = function(arg)) != null)
检查调用方法。
最接近的设计模式是java中的Null对象模式。
http://www.tutorialspoint.com/design_pattern/null_object_pattern.htm
答案 1 :(得分:0)
然后该方法的用户可以确定返回的值是数组
听起来像type safety。虽然,即使在类型安全的语言中,如果您将返回类型记录为nullable,也可以轻松返回null
。