gpt4 book ai didi

clojure - 如何在没有限定符的所有命名空间中访问命名空间中的符号?

转载 作者:行者123 更新时间:2023-12-04 16:51:25 27 4
gpt4 key购买 nike

我有只在开发中使用的带有调试实用程序的命名空间。我想让它们在没有限定符的所有命名空间中都可以访问(与来自 clojure.core 的符号相同)。

假设我的项目结构如下:

dbg_utils.clj:

(ns project.dbg-utils)

(defmacro dbg ...)

数据库文件
(ns project.db)

(defn create-entity [...]
...)

在我想启动 REPL 并输入如下内容之后:
> (require 'project.db)
> (require 'project.dbg-utils)
> (globalize-symbol 'project.dbg-utils/dbg)

使用后 dbg没有限定符的宏:
(ns project.db) ;; no require of project.dbg-utils

(defn create-entity [...]
(dbg ...) ;; and no qualifier here
...)

是不是像 globalize-symbol (或接近此)可用?

最佳答案

莱宁根提供 :injections功能和 :user个人资料。

This article分享一些关于如何做到这一点的指示。它基本上通过添加您想要的调试功能来工作 clojure.core并且因为在使用 ns 时总是包含来自这个命名空间的所有公共(public)变量宏(除非您另外指定),您将在所有命名空间中使用它们。

关于clojure - 如何在没有限定符的所有命名空间中访问命名空间中的符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37414489/

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