提问者:小点点

有没有可能让一个智能三元运算符在满足条件的情况下返回一个复数值?


为含糊的标题道歉。 我不知道这个问题怎么写!

在PHP和JS中,我都遇到过这样的情况:我希望返回一个值,但必须满足一个条件。 我在想是否还有更短的路我还没有发现?

示例:如果complexFunction()>=0,则返回它的值,否则返回零

complexFunction()返回值可能以不同的方式在多个地方使用,因此我不希望在函数本身中包含该条件

返回(complexFunction()>=0?complexFunction():0);

//效率低下-调用函数两次

$value = complexFunction();
return ($value >= 0 ? $value : 0);

//取2行并创建变量

返回(complexFunction()?>=0:0);

//ideal-complexFunction只执行一次,不手动赋变量,只使用一行

这在Excel中也有帮助:

=if(sum(ComplexRange)>1000,sum(ComplexRange),1000)

//效率低-执行两次复杂的过程

=如果(HelperColumnSum>1000,HelperColumnSum,1000)

//增加工作表大小

=ReturnIfConditionElse(sum(ComplexRange),“>1000”,1000)

//理想-无helpercolumn或重复计算


共1个答案

匿名用户

您可以将最大值取为零,也可以取complexFunction调用的结果。

return Math.max(complexFunction(), 0);