-1
votes

Utilisation de HashMaps Java à Clojure

Je suis nouveau à Clojure. J'essaie d'utiliser Java Hashmap à Clojure. Je passe un haschmap Java à Clojure. La carte est-{0 = Goa, 1 = Delhi, 2 = mumbai}. Lorsque j'essaie d'utiliser les fonctions de clojure sur cette carte, je ne reçois pas la sortie attendue. Contrairement à cela lorsque je suis itération sur cette carte, il donne la production attendue.

Example
   (println(get map 0)) is giving nil




(doseq [[key value] map
      (println value)) is giving the expected output.

        Output-Goa
               Delhi
               Mumbai


1 commentaires

S'il vous plaît soyez conscient de la façon dont vous marquez vos questions. Compte tenu de votre question n'est pas sur Java , attirant des experts Java à votre question ne va pas vous aider.


3 Réponses :


0
votes

Je pense que votre problème est que votre carte est nommée "carte" qui est également une fonction de clojure. Essayez-la comme ceci: xxx

qui fonctionnera alors comme ceci: xxx

Notez qu'il retourne toujours nil, car il n'y a toujours rien d'autre Après la forme (printLN), mais il imprime la valeur du 0 sur la carte, qui est "Goa".


2 commentaires

Bien qu'il soit vrai que vous ne devriez pas utiliser cartographier comme nom de votre carte, si vous l'essayez sur le repli, vous devez simplement obtenir un avertissement comme AVERTISSEMENT: la carte fait déjà référence à: # ' clojure.core / carte dans l'espace de noms: utilisateur, étant remplacé par: # 'Utilisateur / carte . Cela causerait un comportement bizarre si vous essayez ensuite naïvement d'utiliser la fonction Normal Clojure Carte , mais ne causerait pas de problème spécifique décrit ici.


@Benschmidt Merci pour la clarification. Ce n'est pas totalement clair pour moi où sa "carte" est issue de cette partie du code de la question initiale.



1
votes

Vous devriez vraiment faire un bit Google pour trouver des réponses préexistantes comme celle-ci: Clojure: Travailler avec une java.Util.Hashmap dans une mode de clojure idiomatique

Vous pouvez alors voir une réponse simple: xxx < / Pre>

qui nous donne: xxx

et boucle: xxx

avec résultat: xxx


0 commentaires

0
votes
(map print input-map)

0 commentaires