Tbalz
Tbalz

Reputation: 692

How to Add a Slice Array inside of a Struct

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?

Upvotes: 2

Views: 127

Answers (1)

peterSO
peterSO

Reputation: 166529

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 "]

Upvotes: 3

Related Questions