调用Clojure函数时ClassCastException

时间:2013-07-13 19:21:25

标签: clojure

我写了以下代码

(defn create [title url]
  (when (not-any? clojure.string/blank? '(title url))
    (println "doing stuff")))

然而,当我调用函数

(create "title" "url")

我收到以下错误,无法弄清楚我做错了什么

ClassCastException clojure.lang.Symbol cannot be cast to java.lang.CharSequence  clojure.string/blank? (string.clj:279)

1 个答案:

答案 0 :(得分:3)

当我第一次开始学习clojure时,这也是让我失望的事情之一。基本上,你应该使用

(list title url)

clojure编译器处理

'(title url)

作为

(quote (title url))

'quote'不评估其中的任何内容,因此'title'和'url'只是符号(确切地说是clojure.lang.Symbols)。

这是一个比我更好的解释:http://blog.8thlight.com/colin-jones/2012/05/22/quoting-without-confusion.html