clojure 新手指南(4)代碼保護

有時候,你可能須要防止一個表達式或者部分表達式被執行。這種就須要一種稱爲「代碼保護」的技術。這項技術使用起來很是簡單,就是在表達式前面加上一個單引號「 ‘ 」。clojure 遇到這種前綴加上單引號的表達式就會直接跳過求值,直接把其當作一種叫作「符號」的數據結構。 shell

=>(+ 4 5 3)
12

=>'(+ 4 5 3)
(+ 4 5 3)

=>(str '(+ 4 5 3) " is protected while " (+ 4 5 3) " is evaluated.")
"(+ 4 5 3) is protected while 12 is evaluated."
關於符號:

這裏的單引號其實是另外一種形式,叫作quote。'(1 2 3)和(quoto (1 2 3))只是表示相同事物的不一樣方法而已。quote(或者單引號)能夠在任何地方使用,來阻止Clojure當即對一個表達式求值。實際上,它的做用遠不 止於聲明一個列表,當涉及到元編程的時候,單引號十分必須。這個後面在對符號做用進行詳細說明。 編程

相關文章
相關標籤/搜索