如果我评估:

(:content {:foo "bar" :biz "baf" :content ("Happy Happy Joy Joy")})

我得到:
java.lang.String cannot be cast to clojure.lang.IFn

如果我想要"Happy Happy Joy Joy"字符串,如何获取它?
在我的例子中,散列映射是我必须处理的我没有在列表中创建字符串值我知道clojure认为它是一个函数,因为它处于调用位置。

最佳答案

如果在代码中按字面意思定义该列表,则需要“引用”该列表,这样就不会将其作为函数进行计算:

user=> (:content {:foo "bar" :biz "baf" :content '("Happy Happy Joy Joy")})
("Happy Happy Joy Joy")

这里唯一的区别是在开始列表括号之前的' character您也可以使用list函数。
如果您只想要:content列表中的第一项,那么可以使用first
user=> (first (:content {:foo "bar" :biz "baf" :content '("Happy Happy Joy Joy")}))
"Happy Happy Joy Joy"

关于clojure - 如何检索位于哈希映射值列表的第一位置的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47522768/

10-10 01:03