在Clojure中比较字符串的正确方法是什么?

Mah*_*dam 1 clojure

我无法弄清楚如何比较Clojure中的字符串.鉴于此基本功能:

(defn login [username]
  (let [x (username)]
    (if (identical? x "John")
     "Welcome"
     "incorrect username")))
Run Code Online (Sandbox Code Playgroud)

我不断收到此错误消息:当我调用该函数时,java.lang.String无法强制转换为clojure.lang.IFn.在Clojure中比较字符串的最佳方法是什么?

Chr*_*phy 7

你得到的错误信息是因为username进入你的函数是一个字符串,你试图调用它(没有任何参数).你根本不需要这个let表格.而不是xusername.

所有不可变值都响应使用=:

(= username "John")

= 实际上检查值,而不是一些'在内存指针'的概念.