Как начать карту со значениями - PullRequest
0 голосов
/ 29 сентября 2019

У меня есть создание многострочной карты и настройка значений в Go.

type Animal struct {
  food, locomotion, sound string
}

type AnimalInterface interface {
  Eat()
  Move()
  Speak()
}
animals := make(map[string]Animal)
animals["cow"] = Animal{"grass", "walk", "moo"}
animals["bird"] = Animal{"worms", "fly", "peep"}
animals["snake"] = Animal{"mice", "slither", "hsss"}

Я бы предпочел сделать создание и инициализацию в один шаг. Это не работает ... как мне это исправить?

animals := map[string]Animal{
  "cow": Animal{"grass", "walk", "moo"}
  "bird": Animal{"worms", "fly", "peep"}
  "snake": Animal{"mice", "slither", "hsss"}
}

РЕДАКТИРОВАТЬ Добавлены запятые

  animals := map[string]Animal{
    "cow": Animal{"grass", "walk", "moo"},
    "bird": Animal{"worms", "fly", "peep"},
    "snake": Animal{"mice", "slither", "hsss"}
  }
❯ go run animals.go
# command-line-arguments
./animals.go:109:47: syntax error: unexpected newline, expecting comma or }

1 Ответ

2 голосов
/ 29 сентября 2019

опечатка. Вы пропустили запятые после элементов карты.

package main

import (
    "fmt"
)

type Animal struct {
    food, locomotion, sound string
}

type AnimalInterface interface {
    Eat()
    Move()
    Speak()
}

func main() {
    animals := map[string]Animal{
        "cow": Animal{"grass", "walk", "moo"},
        "bird": Animal{"worms", "fly", "peep"},
        "snake": Animal{"mice", "slither", "hsss"},
    }

    fmt.Println(animals)
}

Детская площадка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...