Почему функции в скрипте dolphindb не могут получить доступ к переменным во внешней области видимости - PullRequest
1 голос
/ 23 июня 2019

В большинстве языков программирования, которые я использовал, таких как C / C ++, python, функции могли обращаться к переменным во внешней области видимости, но, как я пробовал в скрипте DolphinDB, это не тот случай.

Следующий код не работает и выдает сообщение об ошибке: Variable 'foo' isn't initialized yet.

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

Я хотел бы знать, почему он разработан таким образом.

1 Ответ

0 голосов
/ 24 июня 2019

DolphinDB поддерживает функциональное программирование, включая функцию чисто функций.Чистая функция не имеет побочного эффекта, то есть только входные аргументы функции могут влиять на вывод функции.

Функция Pure имеет четкий ввод / вывод и, таким образом, улучшает качество программного обеспечения.Чистая функция делает код читабельным.Учитывая входные аргументы, чистая функция имеет стабильный вывод, что значительно облегчает тестирование.DolphinDB - это распределенная система, построенная на основе RPC.Если функция зависит от переменных во внешней области, она не может быть выполнена на удаленном узле.

...