如何比较Clojure中的双引号?

Jia*_*Liu 0 string clojure

(= "\"" "\"")  ;; true

(let [ss "123\""]
  (doseq [s ss]
    (println s (= "\"" s) (.equals "\"" s))))

;; 1 false false
;; 2 false false
;; 3 false false
;; " false false
Run Code Online (Sandbox Code Playgroud)

为什么false在第二种情况?

Car*_*ate 5

请注意通过doseq以下方式给出的元素类型:

(let [ss "123\""]
  (doseq [s ss]
    (println (type s))))
Run Code Online (Sandbox Code Playgroud)

您会看到它们是字符,但您将它们与字符串进行比较.由于类型不匹配,因此总是错误的.

比较一个角色:

(let [ss "123\""]
  (doseq [s ss]
    (println s (= \" s)))) 

1 false
2 false
3 false
" true
Run Code Online (Sandbox Code Playgroud)