在结构中声明和使用映射

我对 golang 非常菜鸟,几天前才开始。


实际上我正在尝试做一个简单的练习来习惯 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

}

最后的问题是:


如何在结构内部的参数中使用映射并将其写入声明中?


湖上湖
浏览 79回答 1
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 游乐场上运行它。
打开App,查看更多内容
随时随地看视频慕课网APP