第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

迭代時(shí)更改值

迭代時(shí)更改值

一只萌萌小番薯 2019-11-11 14:47:32
假設(shè)我有以下幾種類型:type Attribute struct {    Key, Val string}type Node struct {    Attr []Attribute}我想迭代節(jié)點(diǎn)的屬性以更改它們。我本來希望能夠做到:for _, attr := range n.Attr {    if attr.Key == "href" {        attr.Val = "something"    }}但是因?yàn)閍ttr不是指針,所以這行不通,我必須這樣做:for i, attr := range n.Attr {    if attr.Key == "href" {        n.Attr[i].Val = "something"    }}有沒有更簡(jiǎn)單或更快速的方法?是否可以直接從中獲取指針range?顯然,我不想僅僅為了迭代而更改結(jié)構(gòu),更冗長(zhǎng)的解決方案不是解決方案。
查看完整描述

3 回答

?
慕碼人2483693

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊

例如:


package main


import "fmt"


type Attribute struct {

        Key, Val string

}


type Node struct {

        Attr []*Attribute

}


func main() {

        n := Node{[]*Attribute{

                &Attribute{"foo", ""},

                &Attribute{"href", ""},

                &Attribute{"bar", ""},

        }}


        for _, attr := range n.Attr {

                if attr.Key == "href" {

                        attr.Val = "something"

                }

        }


        for _, v := range n.Attr {

                fmt.Printf("%#v\n", *v)

        }

}

操場(chǎng)


輸出量


main.Attribute{Key:"foo", Val:""}

main.Attribute{Key:"href", Val:"something"}

main.Attribute{Key:"bar", Val:""}

替代方法:


package main


import "fmt"


type Attribute struct {

        Key, Val string

}


type Node struct {

        Attr []Attribute

}


func main() {

        n := Node{[]Attribute{

            {"foo", ""},

            {"href", ""},

            {"bar", ""},

        }}


        for i := range n.Attr {

                attr := &n.Attr[i]

                if attr.Key == "href" {

                        attr.Val = "something"

                }

        }


        for _, v := range n.Attr {

                fmt.Printf("%#v\n", v)

        }

}

操場(chǎng)


輸出:


main.Attribute{Key:"foo", Val:""}

main.Attribute{Key:"href", Val:"something"}

main.Attribute{Key:"bar", Val:""}


查看完整回答
反對(duì) 回復(fù) 2019-11-11
  • 3 回答
  • 0 關(guān)注
  • 455 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)