如何在Go地图中分配结构字段

我想分配这样的地图中的结构字段:


package main


import (

    "fmt"

)


type Task struct {

    Cmd string

    Desc string

}


var taskMap = map[string] Task{

    "showDir": Task{

        Cmd: "ls",

    },

    "showDisk": Task{

        Cmd: "df",

    },

}


var task = Task{

    Cmd: "ls",

}


func main() {

    // *Error*cannot assign to taskMap["showDir"].Desc

    taskMap["showDir"].Desc = "show dirs" 

    task.Desc = "show dirs" // this is ok.

    fmt.Printf("%s", taskMap)

    fmt.Printf("%s", task)

}

我可以Desc在变量中分配字段,task但不能在包装的地图中分配taskMap,出了什么问题?


慕哥6287543
浏览 167回答 1
1回答

喵喵时光机

您可以使用指针:var taskMap = map[string]*Task{    "showDir": {        Cmd: "ls",    },    "showDisk": {        Cmd: "df",    },}func main() {    taskMap["showDir"].Desc = "show dirs"    fmt.Printf("%+v", taskMap["showDir"])}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go