在过去的 30 分钟里,我一直在用头撞墙,试图弄清楚为什么这个简单的代码不起作用。它所做的只是检查是否至少指定了一个命令行参数。
(defn check_args []
(if (first *command-line-args*)
println "value is not nil"
println "value is nil"))
(check_args)
当我运行代码时,我最终得到一个运行时异常,它说:
java.lang.RuntimeException: Too many arguments to if
我确定这很简单,但对于我的生活,我无法弄清楚问题出在哪里。从序列中拉出第一项的代码返回序列中的第一项,如果不存在则返回 nil,因此看起来非常简单。
最佳答案
你失去了括号 - 常见的错误。
尝试这个
(defn check_args []
(if (first *command-line-args*)
(println "value is not nil")
(println "value is nil")))
关于clojure - Clojure 中的简单 if-else 分支逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13398684/