我想在这样的地图中指定struct的字段:
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
中分配,出了什么问题?
答案 0 :(得分:1)
您可以使用指针:
var taskMap = map[string]*Task{
"showDir": {
Cmd: "ls",
},
"showDisk": {
Cmd: "df",
},
}
func main() {
taskMap["showDir"].Desc = "show dirs"
fmt.Printf("%+v", taskMap["showDir"])
}