亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何修改結構嵌套數組的值

如何修改結構嵌套數組的值

Go
鳳凰求蠱 2022-07-11 17:09:51
我的結構如下所示:package mainimport (    "fmt")func main() {    s := Stats{}    s.initStructs()    s.Update()    fmt.Println(s)}type Stats struct {    Languages []Language}type Language struct {    Name       string    Mentions   int    Frameworks []Framework}type Framework struct {    Name     string    Mentions int    Sources  []string}func (s *Stats) Update() {    for _, pl := range s.Languages {        pl.Mentions++        for _, fm := range pl.Frameworks {            fm.Mentions++        }    }}func (s *Stats) initStructs() {    techs := map[string][]string{        "python":     {"flask", "django", "tensorflow", "pytorch"},        "javascript": {"angular", "typescript", "node", "express", "react", "vue", "socket.io"},        "c#":         {"asp.net", "unity", ".net"},        "php":        {"laravel"},        "markup":     {"html", "css", "scss"},        "java":       {"spring", "oracle", "grails", "kotlin", "android"},        "sql":        {"postgre", "mongo", "mysql"},        "c++":        {"unity"}}    for item := range techs {        planguage := Language{Name: item}        for _, i := range techs[item] {            f := Framework{Name: i}            planguage.Frameworks = append(planguage.Frameworks, f)        }        s.Languages = append(s.Languages, planguage)    }}我有一個initStructs()方法讓Stats生成看起來像這樣的嵌套結構{[{python 0 [{flask 0 []} {django 0 []} {tensorflow 0 []} {pytorch 0 []}]} {javascript 0 [{angular 0 [....但是,問題是,每當我嘗試使用Update()方法更新嵌套結構的值時,它不起作用,值不會被更新。我確實意識到我需要使用指針,但不確定如何。
查看完整描述

1 回答

?
慕斯王

TA貢獻1864條經驗 獲得超2個贊

當您遍歷數組的元素時,循環變量是該元素的副本。因此,您的更新是在副本上完成的,而不是在結構本身上。改用索引:


func (s *Stats) Update() {

    for i := range s.Languages {

        s.Languages[i].Mentions++


        for j := range s.Languages[i].Frameworks {

            s.Languages[i].Frameworks[j].Mentions++

        }

    }

}


查看完整回答
反對 回復 2022-07-11
  • 1 回答
  • 0 關注
  • 139 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號