小编sk3*_*311的帖子

Golang:在声明的函数之外访问地图对象

我想循环遍历结构体切片,并通过将每个结构体传递给函数来填充结构体字段(这是一个映射)。

我有以下结构

type thing struct {
    topicThing map[string]int
}
Run Code Online (Sandbox Code Playgroud)

我有以下功能

func main() {
    ths := make([]thing, 0)
    for i := 0; i < 10; i++ {
        var th thing
        ths = append(ths, th)
    }

    for _, th := range ths {
        dothing(&th)
    }

    for _, th := range ths {
        fmt.Println(th.topicThing)
    }
}

func dothing(th *thing) {
    tc := make(map[string]int)
    tc["Hello"] = 1
    tc["Bye"] = 2
    th.topicThing = tc
}
Run Code Online (Sandbox Code Playgroud)

main 函数创建一个事物切片(称为 ths),并通过迭代将每个事物传递给 dothing() 函数。在 dothing() 中,我创建一个新映射,用数据填充它,并将其分配给传入事物的属性。然而,当我们在主函数中迭代 ths 来打印每个事物的 topicThing …

go

-1
推荐指数
1
解决办法
702
查看次数

标签 统计

go ×1