2012-08-31 194 views
6

舉例來說,如果我有:如何將矢量轉換爲記錄?

(defrecord Item [name cost]) 

我怎麼能轉換["ball" 10]{:name "ball", :cost 10}

+0

想要將它轉換成像{key:value}對格式的Json? –

+0

我認爲只要它是一個哈希映射就可以了。我的意思是,這基本上是一個記錄,對嗎? – inline

回答

15
user=> (defrecord Item [name cost]) 
user=> (apply ->Item ["ball" 10]) 
#user.Item{:name "ball", :cost 10} 

簡要解釋發生了什麼事。 (->Item "ball" 10)是從給定參數創建記錄的語法之一。這與(Item. "ball" 10)相同。在你的情況下,你有參數向量,所以我們使用(apply fn args-vector)來處理。

+0

如果您可以擴展 - > Item功能來自 –

+0

Alexey,您一直在教我Clojure!再次感謝你)。你能快速告訴我叫什麼' - >',這樣我可以進一步研究它的含義嗎? – inline

+1

新增了對正在發生的事情的簡短說明。 –