2

I'm looking to add an array for a string variable inside of a struct I have created in Go.

type Recipes struct { //Struct for recipe information
    name             string
    prepTime         int
    cookTime         int
    recipeIngredient string
    recipeID         int
    recipeYield      int
}

It is called by

Recipe1.name = "BBQ Pulled Chicken"
Recipe1.prepTime = 25
Recipe1.cookTime = 5
Recipe1.recipeIngredient = "1 8-ounce can reduced-sodium tomato sauce, two"
Recipe1.recipeID = 1
Recipe1.recipeYield = 8

recipeIngredient will have multiple ingredients so it just can't be one string. I would like to have multiple array/slice elements inside recipeIngredient. Anyone have an idea on how i would be able to do this please?

3
  • 1
    You want a slice, not a slice array and not an array. :) Commented Feb 7, 2016 at 21:20
  • 1
    Another off-topic comment/opinion: the recipe prefix in the fields of type Recipes seems redundant. And Recipes should be called Recipe IMHO. Commented Feb 7, 2016 at 21:22
  • 1
    Have a look at the Tour of Go. And do all exercises. Commented Feb 8, 2016 at 6:59

1 Answer 1

3

Use a slice of string. For example,

package main

import "fmt"

type Recipe struct {
    Name        string
    PrepTime    int
    CookTime    int
    Ingredients []string
    ID          int
    Yield       int
}

func main() {
    var recipe Recipe
    recipe.Name = "BBQ Pulled Chicken"
    recipe.PrepTime = 25
    recipe.CookTime = 5
    recipe.Ingredients = append(recipe.Ingredients,
        "1 8-ounce can reduced-sodium tomato sauce",
    )
    recipe.Ingredients = append(recipe.Ingredients,
        "1/2 medium onion, grated ",
    )
    recipe.ID = 1
    recipe.Yield = 8
    fmt.Println(recipe)
    fmt.Printf("Ingredients: %q\n", recipe.Ingredients)
}

Output:

{BBQ Pulled Chicken 25 5 [1 8-ounce can reduced-sodium tomato sauce 1/2 medium onion, grated ] 1 8}
Ingredients: ["1 8-ounce can reduced-sodium tomato sauce" "1/2 medium onion, grated "]
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.