2010-08-05 5 views
1

J'ai une carte Groovy qui ressemble à ce qui suit ...carte Groovy - clés avec espace

def book = [Title of Book: "Groovy Recipes", Author: "Scott Davis", Number of Pages: "241"] 

ajouter mon chaque « livre » dans une liste de livres et voudrait être en mesure d'obtenir chaque valeur plus tard, mais lorsque je tente quelque chose comme ...

BookList.Title of Book[0] //prints something like Title[0] instead of Groovy Recipes 

ma question est, est-il un moyen d'obtenir ces valeurs clés/sans changer les noms des clés?

+0

La question est sur _accessing_ les valeurs, mais je suis perplexe par la façon dont vous _initialized_ la carte. Pour obtenir cela à compiler, j'avais besoin de mettre des citations autour des touches: 'def book = [" Titre du livre ":" Groovy Recipes ", ...' –

Répondre

4

Ce qui suit a fonctionné dans la coquille groovy. Il vous suffit d'utiliser le [] au lieu de la notation de points:

groovy:000> map = [:] 
===> {} 
groovy:000> map['Title of Book'] = "Adam Riese" 
===> Adam Riese 
groovy:000> map 
===> {Title of Book=Adam Riese} 
+4

Juste pour le fun: 'map.'Title of Book'' fonctionne ainsi que ;) – ZeissS

Questions connexes