如果我评估:
(: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/