Объявление и использование карты в структурах

Я такой новичок в голанге и начал его всего несколько дней назад.

На самом деле я пытаюсь сделать простое упражнение, чтобы привыкнуть к синтаксису golang.

У меня это в main.go:

package main 

import(
    "fmt"
    // "stringa"
    "main/survey"
)

func main() {
    var questions = []survey.Question{
        {
            Label: "Questão 1",
            Instructions : "Instrução",
            Options : {
                1 : "Op1",
                2 : "Op2",
            },
            Answer: {
                1 : "Op1",
            },
        },
    }
    fmt.Println(questions[0].Label)
}

И я стараюсь делать простые конструкции, но знаю. эта проблема будет решена, если я использую интерфейс, но если на следующих шагах мне понадобится использовать карты в структуре...

PS: это образец структуры, которую я использовал:

package survey

import(
    // "fmt"
    // "strings"
    // "strconv"
)

// This is a simple Question in a survey code
type Question struct {
    // This is a label for the quetsion
    Label string
    // This is a instructions and is not required
    Instructions string
    // this is a multiple options answer
    Options map[int]string
    // this is a answer correct response
    Answer map[int]string
}

Наконец вопрос:

Как я могу использовать карту в параметрах внутри структуры и записать это в объявлении?

1 ответ

Решение

Тип (map[int]string) должен использоваться в составном литеральном выражении для значения поля структуры:

var questions = []survey.Question{
    {
        Label:        "Questão 1",
        Instructions: "Instrução",
        Options: map[int]string{
            1: "Op1",
            2: "Op2",
        },
        Answer: map[int]string{
            1: "Op1",
        },
    },
}

Тип в составном литеральном выражении может быть исключен только в элементах среза (как и в случае с элементами []survey.Question), ключи карты и значения карты.

Запускайте его на игровой площадке Go.

Другие вопросы по тегам