gpt4 book ai didi

clojure - 如何将我的 defstruct 保留并恢复到文件中?

转载 作者:行者123 更新时间:2023-12-03 00:24:45 38 4
gpt4 key购买 nike

我想将数据保存到文件中,并在重新运行程序时恢复数据。

我已经这样定义了我的 defstruct:

(defstruct书签:url:标题:评论)

程序将简单地执行以下操作:
1. 从 url-db.txt 加载 defstruct
2. 从传递到 *command-line-args* 的导入文件中读取并添加到内部数据变量。
3.重写url-db.txt文件。

示例导入文件:

www.cnn.com|新闻|这里是 CNN
www.msnbc.com|搜索|
news.ycombinator.com|新闻|科技新闻

最佳答案

Tom Crayford 的答案很接近,但使用“pr”函数而不是“print”。 “pr”生成可以用“read”读回的字符串。

(defn save-db [db filename]
(spit
filename
(with-out-str (pr db))))

(defn load-db [filename]
(with-in-str (slurp filename)
(read)))

请注意,如果 *print-dup* 设置为 true,则此操作将不起作用。请参阅ticket #176另请注意,当您读回数据库时,记录将是普通映射,而不是结构映射。结构映射尚无法使用 pr/read 进行序列化。

关于clojure - 如何将我的 defstruct 保留并恢复到文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1291765/

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