如何比较Clojure中的双引号?

时间:2017-04-05 15:17:07

标签: 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

为什么false在第二种情况下?

1 个答案:

答案 0 :(得分:5)

请注意doseq

给您的元素类型
(let [ss "123\""]
  (doseq [s ss]
    (println (type s))))

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

与角色比较:

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

1 false
2 false
3 false
" true