欢迎使用!请查看关于页面了解更多有关此功能的信息。
比如说,我有一个像这样的edn文件
{:name :some-name:some-key #my/data-reader-fn [1 2 3]}
现在我想要程序性地更改:name的内容。
:name
如果我读取edn文件,数据读取函数将被应用,所以如果我想将我的更改写入edn文件,则:some-key也会被更改。
:some-key
这个问题有没有解决方案?
选项1 - 不要使用你的读取函数,或者安装一个替代方案。将default-data-reader-fn绑定到tagged-literal是一个有效的“中继”解决方案。请参阅https://insideclojure.org/2018/06/21/tagged-literal/以获取关于该问题的更详细说明。
default-data-reader-fn
tagged-literal
选项2 - 为数据读取函数读取的任何对象提供自定义打印函数,以便它以相同的标记文本打印。您可能需要提供print-method和print-dup多方法实现(它是基于类的键)。
print-method
print-dup