2016-12-16 51 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轉換。不過,我建議在發佈或拉取請求前刪除這種調試幫助。

懶惰的序列很棒,大部分時間。