Essayez ceci:
(defn mystery-fn []
(list {:lat 40.4167754, :lng -3.7037902, :address "Madrid, Spain"})
)
(println :println (mystery-fn))
(prn :prn (mystery-fn))
(def a (first (mystery-fn)))
(prn :a a)
(def b (:lat a))
(prn :b b)
avec sortie:
:reloading (tst.clj.core)
:println ({:lat 40.4167754, :lng -3.7037902, :address Madrid, Spain})
:prn ({:lat 40.4167754, :lng -3.7037902, :address "Madrid, Spain"})
:a {:lat 40.4167754, :lng -3.7037902, :address "Madrid, Spain"}
:b 40.4167754
Notez la différence entre println
et prn
. En utilisant prn
, vous obtenez des chaînes avec des guillemets qui peuvent aider beaucoup quand il y a des espaces intégrés.
En outre, lorsque vous souhaitez étiqueter une sortie imprimée, il est souvent plus facile d'utiliser un mot-clé comme l'étiquette (prn :xyz ...)
au lieu de (println "xyz = " ...)
.
La séquence doit-elle toujours contenir une seule valeur? Vous pouvez utiliser '(first x)' pour obtenir la première carte. – Lee
Vos données ne sont pas valides. Je m'attendrais '({: lat 40.4167754,: lng -3.7037902,: adresse" Madrid, Espagne "})', avec un préliminaire '' 'si vous comptez le lire. – Thumbnail
Merci @Lee c'est la clé pour résoudre mon problème. – matiasmasca