java.lang.String 无法转换为 clojure.lang.IFn
java.lang.String cannot be cast to clojure.lang.IFn
我正在尝试将一些数据添加到应用引擎数据存储中。这是我的功能
(defn createUser [email phone roleId status]
(println (db/isIdExist "users" "email" email))
(if (db/isIdExist "users" "email" email)
(str "false")
((db/addUser email phone roleId status) (str "true"))))
这里我想根据 isIdExist
函数的值在正文中打印 false(如果电子邮件已经存在,则 returns true 否则为 false)现在当我 运行 时,如果isIdExist == true
然后它打印 false 但是当 isIdExist == false
它在数据存储中添加值但是给出这个错误。有人可以帮忙解释为什么会这样吗?我在这里缺少什么 clojure 概念?谢谢
我假设 db/addUser
return 是一个字符串,在这种情况下,您试图将 return 值作为函数调用。看起来您想执行插入,然后 return "true" 因此您可以使用 do
对两者进行排序:
(if (db/isIdExist "users" "email" email)
"false"
(do
(db/addUser email phone roleId status)
"true"))))
在 Clojure 中 )))))))
是完全正常的,随处可见,无需担心。
另一方面,((
应该脱颖而出并吸引您的眼球。它通常意味着:
- 有人正在返回一个函数。
- 该函数应该立即 运行。
这个模式在任何方面都没有错,只是学会发现它是快速习惯阅读 Clojure 代码的有用方法。在这种情况下,这可能意味着
中的空缺 (
过多
((db/addUser email phone roleId status) (str "true"))))
我正在尝试将一些数据添加到应用引擎数据存储中。这是我的功能
(defn createUser [email phone roleId status]
(println (db/isIdExist "users" "email" email))
(if (db/isIdExist "users" "email" email)
(str "false")
((db/addUser email phone roleId status) (str "true"))))
这里我想根据 isIdExist
函数的值在正文中打印 false(如果电子邮件已经存在,则 returns true 否则为 false)现在当我 运行 时,如果isIdExist == true
然后它打印 false 但是当 isIdExist == false
它在数据存储中添加值但是给出这个错误。有人可以帮忙解释为什么会这样吗?我在这里缺少什么 clojure 概念?谢谢
我假设 db/addUser
return 是一个字符串,在这种情况下,您试图将 return 值作为函数调用。看起来您想执行插入,然后 return "true" 因此您可以使用 do
对两者进行排序:
(if (db/isIdExist "users" "email" email)
"false"
(do
(db/addUser email phone roleId status)
"true"))))
在 Clojure 中 )))))))
是完全正常的,随处可见,无需担心。
另一方面,((
应该脱颖而出并吸引您的眼球。它通常意味着:
- 有人正在返回一个函数。
- 该函数应该立即 运行。
这个模式在任何方面都没有错,只是学会发现它是快速习惯阅读 Clojure 代码的有用方法。在这种情况下,这可能意味着
中的空缺(
过多
((db/addUser email phone roleId status) (str "true"))))