Работает ли перезагрузка в глобальном масштабе в ближайшем будущем? - PullRequest
3 голосов
/ 19 апреля 2011

Скажем, у меня есть два исходных файла в программе clojure, и я перезагружаю измененный внешний модуль, используя: reload в одном из модулей. Перезагрузка происходит только в пределах модуля, который вызывает перезагрузку, или перезагрузка действует для всех модулей?

Ответы [ 2 ]

3 голосов
/ 19 апреля 2011

Если файл clojure перезагружается, он перезагружается.Это не относится к области действия - оно просто загружает и оценивает все, что находится в файле.

Что именно происходит, зависит от того, что в файле.Например, перезагрузка (def) формы перезаписывает корневую привязку для этой переменной.Еще одно интересное следствие: удаление переменной в файле и ее повторная загрузка не приведет к удалению переменной.

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

1 голос
/ 19 апреля 2011

Я предполагаю, что с помощью: reload вы обновляете пространство имен в вашем repl (в вашем текущем экземпляре java runtime).поэтому мой ответ: глобальный (потому что теперь у вашего экземпляра среды выполнения новый код)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...