database - DolphinDB 在重新分配 undefined variable 时抛出异常

标签 database scope dolphindb undef

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

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

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

执行上述代码后,出现异常:

Assignment statement failed probably due to invalid indices [a = [1]]

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

最佳答案

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

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

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

关于database - DolphinDB 在重新分配 undefined variable 时抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56472345/

相关文章:

sql - PostgreSQL,选择行直到达到并超过一定数量

python - 如何防止python函数读取外部范围变量?

python - Python 何时评估函数定义中的变量

sql - 一次在 SQL 查询中选择 100 多个列(但不是所有表列)的便捷方法?

database - 如何删除 DolphinDB 磁盘上的 mvccTable?

python - 是否有 DolphinDB 函数用于查找向量中元素的索引?

sql - 对分区表使用分区索引

MySQL 创建一对一关系

sql - 如何从sql server中一条记录的多个值中仅获取指定值记录

Kotlin 接口(interface)属性 : Only require public getter without public setter