2012-08-31 20 views
6

Por ejemplo, si tuviera:¿Cómo puedo convertir un vector en un registro?

(defrecord Item [name cost]) 

¿Cómo podría convertir ["ball" 10]-{:name "ball", :cost 10}?

+0

desea convertirlo a Json como el formato de par {clave: valor}? –

+0

Creo que siempre que sea un mapa hash, estará bien. Quiero decir, eso es básicamente lo que es un disco, ¿verdad? – inline

Respuesta

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

Breve explicación de lo que está sucediendo. (->Item "ball" 10) es uno de sintaxis para crear registros a partir de argumentos dados. Es lo mismo que (Item. "ball" 10). En su caso tiene un vector de argumentos, entonces usamos (apply fn args-vector) para tratar.

+0

Felicitaciones si pudiera ampliar dónde viene la función de artículo desde –

+0

¡Alexey me has estado enseñando Clojure todo el día! Gracias de nuevo). ¿Puede decirme rápidamente cómo se llama '->' para que pueda investigar su significado más adelante? – inline

+1

Se agregó una breve explicación de lo que está sucediendo. –

Cuestiones relacionadas