我正在尝试从数据库中检索数据。数据以懒惰的顺序返回。我可以查看repl中的数据,它看起来像这样:
({:foo value1, :bar value2})
如何获取此数据?最好如何将其变成地图?我试过了:
(doall sequence(get sequence:foo)) 这只是返回零。和
(apply hash-map user-settings)
返回
llegalArgumentException No value supplied for key: {:foo value1, :bar value2} clojure.lang.PersistentHashMap.create (PersistentHashMap.java:77)
我对clojure很新,并且长期坚持这个问题。提前致谢。
答案 0 :(得分:2)
您已经有了地图,它恰好是您列表中唯一的项目。
(def data (first '({:foo 123 :bar 456})))
(:foo data) ; => 123
答案 1 :(得分:0)
有时,当您想要打印延迟seq以查看数据时使用into
。例如,如果您想查看惰性向量的内容,请使用(into [] your-lazy-vector)
或(into {} your-lazy-map)
。
您可以在println函数或let中执行此非冷却转换。但是,我建议在发布或pull-request之前删除这种调试帮助。
懒惰序列很棒,大部分时间都很好。