有時候,你可能須要防止一個表達式或者部分表達式被執行。這種就須要一種稱爲「代碼保護」的技術。這項技術使用起來很是簡單,就是在表達式前面加上一個單引號「 ‘ 」。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當即對一個表達式求值。實際上,它的做用遠不 止於聲明一個列表,當涉及到元編程的時候,單引號十分必須。這個後面在對符號做用進行詳細說明。 編程