为啥 dolphindb 脚本中的函数无法访问外部范围内的变量

Posted

技术标签:

【中文标题】为啥 dolphindb 脚本中的函数无法访问外部范围内的变量【英文标题】:Why functions in dolphindb script can't access variables in outer scope为什么 dolphindb 脚本中的函数无法访问外部范围内的变量 【发布时间】:2019-11-05 13:38:58 【问题描述】:

在我使用的大多数编程语言中,例如 C/C++、python,函数可以访问外部范围内的变量,但正如我在 DolphinDB 脚本中尝试过的那样,情况并非如此。

以下代码不起作用并报错:Variable 'foo' isn't initialized yet.

foo = 1
def func() 
    foo = foo + 1

func()

我想知道为什么会这样设计。

【问题讨论】:

【参考方案1】:

DolphinDB 支持函数式编程,包括纯函数特性。纯函数没有副作用,即只有函数的输入参数会影响函数的输出。

纯函数具有清晰的输入/输出,从而提高了软件质量。纯函数使代码可读。给定输入参数,纯函数具有稳定的输出,这使得测试更容易。 DolphinDB 是一个建立在 RPC 之上的分布式系统。如果函数依赖于外部作用域的变量,则无法在远程节点执行。

【讨论】:

以上是关于为啥 dolphindb 脚本中的函数无法访问外部范围内的变量的主要内容,如果未能解决你的问题,请参考以下文章

如何删除 DolphinDB 中的所有用户名?

如何获取 DolphinDB 中分布式表的磁盘使用情况?

为啥模块中的这个公共函数无法访问

DolphinDB 中的哪个函数类似于 lag 操作?

为啥嵌套函数可以从外部函数访问变量,但不允许修改它们[重复]

为啥云函数 URL (Firebase) 可以公开访问?如何限制对特定外部呼叫的访问? [复制]