2016-12-16 67 views
1

我试图从数据库中检索数据。数据以懒惰的顺序回来。我可以看到repl中的数据,它看起来像这样:从懒惰序列访问数据

({:foo value1, :bar value2}) 

我该如何获得这些数据?最好是,我怎样才能把它变成地图?我试过了:

(doall序列(获得序列:foo)) 这只是返回nil。而

(apply hash-map user-settings) 

返回

llegalArgumentException No value supplied for key: {:foo value1, :bar value2} clojure.lang.PersistentHashMap.create (PersistentHashMap.java:77) 

我很新的Clojure的和一直停留在本作的时间太长了。提前致谢。

+1

*数据以懒惰的顺序返回* - 一个什么懒惰的序列?您有一个由地图'{:foo value1,:bar value2}'表示的记录序列。你可以有几个这样的记录?你想如何将它们组合成地图/表格?记录中是否有索引要索引它们? – Thumbnail

回答

2

您已经拥有一张地图,它恰好是您列表中的唯一项目。

(def data (first '({:foo 123 :bar 456}))) 

(:foo data) ; => 123 
+0

谢谢!这工作完美。 – ben

0

有时当你想打印懒以次来查看数据使用into。例如,如果您想查看使用(into [] your-lazy-vector)(into {} your-lazy-map)的惰性载体的内容。

你可以在println函数或let中做这个uncool转换。不过,我建议在发布或拉取请求前删除这种调试帮助。

懒惰的序列很棒,大部分时间。