我最近一直在用 Swift 编程。今天,当问题突然出现在我面前时,我在 JavaScipt 中做了一些工作:
是否有类似于 JavaScript 中的可选链的东西?一种undefined is not an object
没有任何变量的预防方法?
例子:
function test(){
if(new Date() % 2){
return {value: function(){/*code*/}};
}
}
test().value();
会失败一半,因为有时会test
返回 undefined。
我能想到的唯一解决方案是一个函数:
function oc(object, key){
if(object){
return object[key]();
}
}
oc(test(), 'value');
我希望能够执行以下操作:
test()?.value()
问号后面的部分只有在test
返回一个对象时才执行。
但这不是很优雅。有什么更好的吗?运算符的神奇组合?
编辑我知道我可以重写test
以返回一些东西。但我想知道是否有诸如可选链接之类的东西。我对上述示例的特定解决方案不感兴趣。如果无法控制返回 undefined 的函数,我也可以使用它。