首页 > 解决方案 > mathjs 有 null 或 undefined 的概念吗?

问题描述

我认为答案可能是“不”,因为我可以告诉数学库似乎没有处理 null,但我想要是在这些情况下处理 null:

x=1
(y not defined)
z = sum(x, y)

eval() 理想情况下给出:

z=1

但是,这会引发异常,因为 y 未定义。

实际上,在该示例中,我将“y”默认为零,但这并非在所有情况下都有效。

所以,我想我要问的是,如果变量没有赋值,是否有一种内置的方法来定义变量的默认值?

如果没有,我假设这可以通过编写自定义函数来实现。如果有人能证实这一点,我将不胜感激。

谢谢 :-)。

标签: mathjs

解决方案


好的 - 我正在查看 v4 的发行说明,并看到它在谈论常量“null、undefined”(和其他)。所以,为了解决这个问题,我必须将一个变量定义为未定义(可能应该知道这一点!)。

(注意:我怀疑这些常量在以前的版本中也可用。)

然后结合“默认”自定义函数,我可以得到我想要的:

x=1
y = null 
z = sum(x, def(y, 0))
z=1

其中“def”的定义和导入如下(使用“lodash”):

var customFunctions = {
  def: function (value, defaultValue) {
    return !_.isNil(value) ? value : defaultValue;
  }
};
math.import(customFunctions);

波什!


推荐阅读