clojure - Clojure 中的简单 if-else 分支逻辑

标签 clojure

在过去的 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/

相关文章:

java - 2011 年新 Java/Clojure 项目的 OpenGL 工具集

clojure - 使用 cljx 的目标相关宏

java - 从 clojure 使用 java 第三方库的步骤

clojure - 似乎不需要>!!或 <!!在 Clojurescript 中?

java - 在没有 Leiningen 的情况下在 Clojure 中包含文件 : Could not locate file

clojure - 获取 Clojure Stacktrace

clojure - 为什么 `disj` 和 `dissoc` 在 Clojure 中有不同的功能?

clojure - 如何确定clojure中nil的含义?

clojure - 在Compojure中使用CSS入门?

java - 创建 clojure 库(jar)以便从 java 调用它