(= "\"" "\"") ;; 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在第二种情况?
请注意通过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)