我有一个Clojure数据结构的形式:
{:foo'("bar""blat")}
并尝试使用各种pr/prn/print将它们写入文件.但是,每次将结构写为
{:foo("bar""blat")}
然后,当我尝试使用load-file读取它时,我收到一个错误,例如:
java.lang.ClassCastException:java.lang.String无法强制转换为clojure.lang.IF n(build-state.clj:79)
可能是因为列表在被读取时被评估为函数调用.有没有办法用引用形式的列表写出结构?
谢谢,尼克
打印的反面通常是读数,而不是加载.
user> (read-string "{:foo (\"bar\" \"blat\")}")
{:foo ("bar" "blat")}
Run Code Online (Sandbox Code Playgroud)
如果您确实需要打印可加载代码,则需要引用两次.
user> (pr-str '{:foo '("bar" "blat")})
"{:foo (quote (\"bar\" \"blat\"))}"
user> (load-string (pr-str '{:foo '("bar" "blat")}))
{:foo ("bar" "blat")}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
281 次 |
| 最近记录: |