2012-08-31 16 views
6

Zum Beispiel, wenn ich habe:Wie kann ich einen Vektor in einen Datensatz konvertieren?

(defrecord Item [name cost]) 

Wie kann ich ["ball" 10]-{:name "ball", :cost 10} konvertieren?

+0

möchte es in Json wie {Schlüssel: Wert} Paar Format konvertieren? –

+0

Ich denke, solange es eine Hash-Karte ist, wird es in Ordnung sein. Ich meine, das ist im Grunde eine Platte, oder? – inline

Antwort

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

Kurz erklären, was vor sich geht. (->Item "ball" 10) ist eine der Syntax zum Erstellen von Datensatz aus gegebenen Argumenten. Es ist das gleiche wie (Item. "ball" 10). In Ihrem Fall haben Sie Vektor von Argumenten, also verwenden wir (apply fn args-vector), um damit umzugehen.

+0

Kudos wenn du erweitern könntest wo die -> Item Funktion kommt von –

+0

Alexey du hast mir den ganzen Tag Clojure beigebracht! Danke nochmal). Kannst du mir schnell sagen, was das '->' heißt, damit ich seine Bedeutung weiter erforschen kann? – inline

+1

Kurz erklärt, was gerade passiert. –

Verwandte Themen