DolphinDB 在重新分配 undef-ed 变量时会引发异常



在DolphinDB中,我定义了一个变量,称为undef函数来取消定义它,并为其重新分配了一个向量。但是我的代码抛出了一个我无法理解的异常。

为了简化问题,我将提供一个引发异常的最小示例:

a = 0
undef(`a, VAR)
a = [1]

执行上述代码后,我得到了以下异常:

赋值语句失败可能是由于索引无效 [a = [1]]

我想知道我的代码出了什么问题以及如何正确编写它。

为了回答你的问题,让我解释一下 DolphinDB 如何执行脚本。

DolphinDB 需要扫描脚本两次。在第一轮中,它解析脚本的所有行并检查变量定义、函数定义、函数参数等。DolphinDB试图在解析时找出尽可能多的语法错误。在第二轮中,它逐一执行脚本行。

回到你的问题。在解析轮中,DolphinDB 找出一个变量a并将其放入堆栈中。函数调用undef在运行时(第二轮(执行。它从堆栈中删除变量,以便第三行引发异常,因为变量根本不存在。

最新更新