gpt4 book ai didi

clojure - 是否可以从 :reload on the Repl? 中排除函数/ namespace

转载 作者:行者123 更新时间:2023-12-02 08:24:46 24 4
gpt4 key购买 nike

我有两个函数可以同步执行 IO。因此,当我做一个

(require 'my.namespace :reload)

我得到:

CompilerException java.lang.IllegalStateException: I/O in transaction, compiling:

有没有办法排除重新加载这两个函数或整个命名空间?

最佳答案

如果您的顶级表单有副作用(例如读取或写入内容),您可以使用 defonce 宏保护它们不被重新加载:

(defonce launcher (fire-the-missiles))

这样,如果已经定义了启动器,则不会重新评估定义它的表单。在顶级表单中有太多副作用是一种代码味道,因为当您确实想要重新加载它们时会更加困难。

关于clojure - 是否可以从 :reload on the Repl? 中排除函数/ namespace ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33256603/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com