登录
首页 >  Golang >  Go问答

Go - 如何更新作为结构体字段的映射?

来源:stackoverflow

时间:2024-04-19 12:39:34 153浏览 收藏

最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《Go - 如何更新作为结构体字段的映射?》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~

问题内容

我尝试了以下方法来更新声明为结构字段的空映射:

package main

type MyStruct struct {
    scoreboard map[string]int
}

func main() {
    mystruct := NewMyStruct()
    mystruct.SubmitWord('test')
}

func NewMyStruct() MyStruct {
    return MyStruct{}
}

func (mystruct *MyStruct) SubmitWord(word string) int {
    mystruct.scoreboard[word] = len(word)
    return len(word)
}

但我收到 exit 状态 2 的错误。

有问题的行是 mystruct.scoreboard[word] = len(word)

我能找到的任何内容似乎都表明这是可以的,但我还没有找到地图位于结构内的任何其他示例。


解决方案


您需要先分配地图

package main


type MyStruct struct {
    scoreboard map[string]int
}

func main() {
    mystruct := NewMyStruct()
    mystruct.SubmitWord("test")
}

func NewMyStruct() MyStruct {
    var x MyStruct
    x.scoreboard=make(map[string]int)
    return x
}

func (mystruct *MyStruct) SubmitWord(word string) int {
    mystruct.scoreboard[word] = len(word)
    return len(word)
}

演示:https://play.golang.org/p/ipqHJ8TdUfh

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Go - 如何更新作为结构体字段的映射?》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>