gpt4 book ai didi

clojure - 在其他项目中使用阅读器文字

转载 作者:行者123 更新时间:2023-12-02 10:38:17 25 4
gpt4 key购买 nike

我的项目的 data_readers.clj 文件中有我的阅读器文字,并且一切正常。如果我创建一个新项目,我可以使用我在依赖库中创建的阅读器文字吗?我没有找到使用/需要阅读器文字的方法。

例如,如果我有一个 data_readers.clj 文件:

{ml/foo mylib.core.foo}

我可以从单独的项目中执行#ml/foo some-arg吗?

最佳答案

在需要库后,您可以通过多种方式来完成:

1) 绑定(bind)*data-readers*

(ns mylib.core)
(def foo identity)
(binding [*data-readers* (assoc *data-readers* 'ml/foo mylib.core/foo)]
(read-string "#ml/foo arg")) ;;=> arg

此外,您可以为所有标签绑定(bind)*default-data-reader-fn*。请参阅example

优点:局部影响,建议采用这种方式,因为两个变量都标记为动态。Contra:不适用于 clojure.edn

2)改变clojure.core/default-data-readers

(alter-var-root #'clojure.core/default-data-readers assoc 'ml/foo mylib.core/foo)
(clojure.edn/read-string "#ml/foo arg") ;;=> arg
(read-string "#ml/foo arg") ;;=> arg

专业版:与 clojure.edn 配合使用。反对:全局变异

关于clojure - 在其他项目中使用阅读器文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22108917/

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