[英]Is there a clojure function between read-string and load-string?
[英]Difference between read-string and load-string in Clojure
在將read-string替換為load-string之后,我有一些可以工作的代碼。 該代碼有效,但是我想知道為什么。 這兩個clojure函數之間有什么區別?
使用load-string順序讀取和評估字符串中包含的一組表單
使用read-string從字符串s中讀取一個對象
(均引用Clojure API )
Load-string會將您的字符串評估為Clojure表達式,而read-string則采用該字符串並將其作為找到的數據結構返回,在這種情況下可能是一個表達式。
提示: (load-string "(+ 1 2)")
和(eval (read-string "(+ 1 2)"))
將給您相同的結果,即3
兩個值得注意的區別:
read-string
讀取但不求值,而load-string
讀取並求值。
(read-string "(inc 1)") => (inc 1)
(load-string "(inc 1)") => 2
read-string
僅讀取read-string
中的第一種形式,而load-string
則load-string
所有形式。
(read-string "1 2") => 1
(load-string "1 2") => 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.