在我使用过的大多数编程语言中,比如C/C++、python,函数都可以访问外部作用域中的变量,但正如我在DolphinDB script中尝试的那样,情况并不相同。
以下代码不起作用,并报告错误消息:Variable 'foo' isn't initialized yet.
foo = 1
def func() {
foo = foo + 1
}
func()
我想知道为什么它是这样设计的。
发布于 2019-06-24 02:55:38
DolphinDB支持函数式编程,包括纯函数特性。纯函数没有副作用,即只有函数的输入参数可以影响函数的输出。
纯函数具有清晰的输入/输出,提高了软件质量。纯函数使代码具有可读性。给定输入参数,纯函数具有稳定的输出,这使得测试变得更容易。DolphinDB是一个建立在远程过程调用之上的分布式系统。如果一个函数依赖于外部作用域中的变量,那么它不能在远程节点中执行。
https://stackoverflow.com/questions/56724849
复制相似问题