簡體   English   中英

Clojure REPL中的反斜杠是什么?

[英]What is the backslash in a Clojure REPL?

我正在使用Clojure REPL,當我運行某些命令時會看到反斜杠。 一些快速谷歌搜索並沒有發現任何明顯的答案。

如果我跑步

Clojure 1.8.0
Java HotSpot(TM) 64-Bit Server VM 1.8.0_91-b14
   (nth "I heart Clojure!" 4)
=> \a

這里的反斜杠是什么?

這意味着后面的字符應解釋為文字。

  • 字符-前面加反斜杠:\\ c。 \\ newline,\\ space,\\ tab,\\ formfeed,\\ backspace和\\ return產生相應的字符。
  • Unicode字符-與Java中一樣,用\\ uNNNN表示。
  • 八進制-用\\ oNNN表示。

有關更多信息,請參見以下鏈接。

在Clojure中,字符以反沖開頭。 有關Clojure語法的更多信息,請參見閱讀器文檔

當您在單個字符前看到斜杠時,這表示它不是字符串,而是Java Char實例:

user=> (type \a)
java.lang.Character

在Java和Clojure中,String實例都被視為字符序列。 這就是為什么(nth ... 4)返回示例中的(nth ... 4)字符。

同樣,在字符串中使用斜杠來引用其他一些字符。 例如,要將雙引號放在字符串中,您需要在其前面加上反斜杠:

(def message "User \"John\" not found")
;; User "John" not found

最后,反斜杠可能會指定代表行尾,制表符或其他內容的機器符號:

(def header "Name\tAge\tCity")

在這里, \\t表示<TAB>符號。 標題字符串將像這樣打印:

Name        Age        City

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM