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

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

更改數(shù)組元素沒有效果

更改數(shù)組元素沒有效果

Go
森欄 2023-07-17 17:51:27
編譯器有問題或者我對Go的理解有問題。我有一個(gè)奇怪的錯(cuò)誤,并將其簡化為一個(gè)簡單的示例。由于某種原因,我無法直接在循環(huán)內(nèi)更改數(shù)組。    var nums [2]int    for i, v := range nums {        if i == 0 {            nums[i+1]++        } else {            fmt.Print(v)        }    }這會(huì)增加 nums[1] 然后打印它。所以它應(yīng)該打印 1,但它打印 0。
查看完整描述

2 回答

?
GCT1015

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

當(dāng)您在表達(dá)式中使用數(shù)組時(shí),您將獲得它的“值”(即數(shù)組的完整新副本)。這包括在循環(huán)的范圍表達(dá)式中使用數(shù)組。因此,當(dāng)您打印時(shí),v您正在打印副本,但實(shí)際的nums數(shù)組已更改。


在切片而不是數(shù)組上循環(huán)可以滿足您的期望:


    var nums [2]int

    for i, v := range nums[:] {

        if i == 0 {

            nums[i+1]++

        } else {

            fmt.Print(v)

        }

    }


查看完整回答
反對 回復(fù) 2023-07-17
?
catspeake

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

范圍創(chuàng)建數(shù)組(及其值)的副本,因此可以迭代它們。


如果您計(jì)劃在迭代期間改變數(shù)組(或其中的一個(gè)切片),最好直接引用數(shù)組/切片 - 因?yàn)樵撝祵⑹且粋€(gè)v副本,并且在您的代碼中是數(shù)組的舊副本。


所以嘗試這樣的事情:


var nums [2]int

for i := range nums {

    if i == 0 {

        nums[i+1]++

    } else {

        fmt.Print(nums[i])

    }

}


查看完整回答
反對 回復(fù) 2023-07-17
  • 2 回答
  • 0 關(guān)注
  • 195 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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