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

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

結(jié)構(gòu)的字段值在每次迭代時重置

結(jié)構(gòu)的字段值在每次迭代時重置

Go
郎朗坤 2022-10-04 14:27:26
我有一個帶有名稱,IP和狀態(tài)字段的結(jié)構(gòu);我有一個設(shè)備列表;我想每2秒(或任何其他時間,就此而言)迭代該列表并更改“狀態(tài)”字段:Devicetype Device struct {    Name   string    IP     string    Status bool}// One device is enough to explain the problemvar devices = []Device{    Device{Name: "phone", IP: "192.168.1.58", Status: false},}func main() {    for range time.Tick(2 * time.Second) {        for _, j := range devices {            fmt.Printf("%s: %v\n", j.Name, j.Status)            j.Status = true            fmt.Printf("%s: %v\n--------\n", j.Name, j.Status)        }    }}我預計輸出是phone: falsephone: true------phone: truephone: true------phone: truephone: true------...但相反,我得到了phone: falsephone: true--------phone: falsephone: true--------...基本上,狀態(tài)值在每次迭代時都會重置。如果我將設(shè)備移到列表之外,它將按預期工作,如下所示:var j = Device{Name: "phone", IP: "192.168.1.58", Status: false}for range time.Tick(2 * time.Second) {    fmt.Printf("%s: %v\n", j.Name, j.Status)    j.Status = true    fmt.Printf("%s: %v\n--------\n", j.Name, j.Status)}我做錯了什么?
查看完整描述

1 回答

?
蝴蝶刀刀

TA貢獻1801條經(jīng)驗 獲得超8個贊

您可以按照建議將切片類型更改為指針@Marc;或者,您可以直接通過其索引更新切片:

for i := range devices {
    devices[i].Status = true}


查看完整回答
反對 回復 2022-10-04
  • 1 回答
  • 0 關(guān)注
  • 101 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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