Clojure中读取字符串和加载字符串之间的区别

Zub*_*air 10 clojure

我有一些代码,用load-string替换read-string后工作.代码工作很好,但我想知道原因.两个clojure函数有什么区别?

row*_*age 8

使用load-string顺序读取和评估字符串中包含的表单集

使用read-string从字符串s中读取一个对象

(均来自Clojure API)

Load-string将您的字符串计算为Clojure表达式,read-string接受字符串并将其作为找到的数据结构返回,在这种情况下可能是表达式.

Protip:(load-string "(+ 1 2)")并且(eval (read-string "(+ 1 2)"))会给你相同的结果,即3