2012-08-31 17 views
6

Per esempio, se ho avuto:Come posso convertire un vettore in un record?

(defrecord Item [name cost]) 

Come potrei convertire ["ball" 10]-{:name "ball", :cost 10}?

+0

vuoi convertirlo in Json come {key: value} pair format? –

+0

Penso che finchè è una mappa hash, andrà bene. Voglio dire, questo è fondamentalmente ciò che è un record, giusto? – inline

risposta

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

Breve spiegazione di cosa sta succedendo. (->Item "ball" 10) è una delle sintassi per la creazione di record dagli argomenti dati. È lo stesso di (Item. "ball" 10). Nel tuo caso hai vettoriale di argomenti, quindi usiamo (apply fn args-vector) per gestire.

+0

Complimenti se potessi espandere il punto in cui la funzione -> Item viene da –

+0

Alexey mi hai insegnato Clojure tutto il giorno! Grazie ancora). Puoi dirmi velocemente cosa viene chiamato '-> 'così posso cercare ulteriormente il suo significato? – inline

+1

Aggiunta una breve spiegazione di cosa sta succedendo. –

Problemi correlati