2016-04-14 6 views
1

Ich versuche, ein Rezept-Projekt in Groovy zu erstellen, im Moment habe ich eine einfache Rezept-Klasse, die die Rezept-ID und Rezept-Name enthält, habe ich dann eine Rezeptbuch-Klasse, die ein erstellt neue Karte und dann eine Methode namens addRecipe, um Rezepte zur Karte hinzuzufügen. Im Moment überschreiben sich meine Rezepte einfach in der Karte, anstatt sie nacheinander hinzuzufügen.Add neuen Index für Karte in Groovy

class Recipe { 

     int id 
     String name 
     def ingredients 

    } 

class RecipeBook { 

    // Create a map to store our recipes 
    def recipeList = [:] 

    // Use closure to add recipes to the map 
    def addRecipe = { id,name -> 
     Recipe recipe = new Recipe(id: id, name: name) 
     recipeList.put('id',recipe.id) 
     recipeList.put('name',recipe.name) 
     // Last element gets returned 
     recipeList 
    } 


} 
RecipeBook recipe = new RecipeBook() 

recipe.addRecipe(1, "Chicken Soup") 

recipe.addRecipe(2, "Lemon Chicken") 

println recipe.recipeList 

Nach dem Hinzufügen der 2 Rezepte meine Array enthält nur 2: Lemon Chicken

+0

Warum haben Sie umfassen 'ruby' Tag? – Ilya

Antwort

1

Sie fügen Sie nicht Ihre recipe s zum recipeList, aber auf jeden addRecipe Rufaufbau Sie recipeList.id und recipelist.name. Ich denke, statt

recipeList.put('id',recipe.id) 
recipeList.put('name',recipe.name) 

Sie so etwas wie

wollen
recipeList.put id, recipe 
+2

Wahrscheinlich wird das OP 'rezeptliste.put (ID, Rezept)' wollen. – Paul

+1

Ah, ja, natürlich, aktualisierte die Antwort, thx. – Vampire

Verwandte Themen