我无法弄清楚如何比较Clojure中的字符串。鉴于这个基本功能:
(defn login [username]
(let [x (username)]
(if (identical? x "John")
"Welcome"
"incorrect username")))
我不断收到此错误消息:当我调用该函数时,java.lang.String无法强制转换为clojure.lang.IFn。在Clojure中比较字符串的最佳方法是什么?
答案 0 :(得分:7)
您收到的错误消息是因为进入您的函数的\xff
是一个String,并且您正在尝试调用它(没有任何参数)。你根本不需要username
表格。而不是let
放x
。
所有不可变值都会响应使用username
:
=
(= username "John")
实际上检查了值,而不是某些“内存指针”概念。