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

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

golang 切片更新問題

golang 切片更新問題

Go
MMMHUHU 2022-08-24 17:21:28
以下代碼旨在允許根據(jù)用戶的團(tuán)隊(duì)更新“shiftlog”變量,并通過后續(xù)調(diào)用讀取內(nèi)容。第一個(gè)請(qǐng)求是“添加”一個(gè)inc,這成功了 - 調(diào)試在shiftLog中顯示inc。下一個(gè)請(qǐng)求是“讀取”shiftLog 的內(nèi)容,但執(zhí)行此操作時(shí),shiftLog 為空。type shiftLog []incvar nOCLog shiftLogvar sUPLog shiftLogvar tECLog shiftLogvar activeLog shiftLogfunc interactionHandler() {    switch TeamID {    case "NOC":        activeLog = nOCLog    case "SUP":        activeLog = sUPLog    case "TEC":        activeLog = tECLog    }    switch Action {    case Add:        activeLog = addInc(inc, activeLog)        log.Debug(activeLog) // activeLog shows added incident    case Read:        readLog(activeLog)        log.Debug(activeLog) // activeLog (And nOC/sUP/tECLog) is empty    }}我顯然誤解了go(我是新手),但是什么?“activeLog = addInc(inc, activeLog)”行是我相信的慣用語,似乎確實(shí)更新了正確的變量,并且范圍似乎是正確的。問題是我在第一個(gè) switch 語句中的變量賦值嗎?
查看完整描述

1 回答

?
Smart貓小萌

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

將項(xiàng)追加到切片時(shí),將返回新切片。新切片被賦值給變量,但這與之前賦給該變量的任何切片無關(guān)。您正在拋棄先前的內(nèi)容并分配新內(nèi)容。activeLog


如果要通過另一個(gè)變量修改變量,則需要指向該變量的指針,而不是對(duì)其內(nèi)容的引用:


nOCLog := []int{1, 2, 3}


// Bad


x := nOCLog

x = append(x, 4)


fmt.Println(x)      // 1, 2, 3, 4

fmt.Println(nOCLog) // 1, 2, 3 (no change)


// Good


y := &nOCLog

*y = append(*y, 4)


fmt.Println(*y)     // 1, 2, 3, 4

fmt.Println(nOCLog) // 1, 2, 3, 4

查看 https://play.golang.org/p/wwNz4Oh3NjW


查看完整回答
反對(duì) 回復(fù) 2022-08-24
  • 1 回答
  • 0 關(guān)注
  • 136 瀏覽

添加回答

舉報(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)