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

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

為什么切片追加元素不更新引用的元素?

為什么切片追加元素不更新引用的元素?

Go
智慧大石 2022-10-17 15:58:01
這條規(guī)則就是我對 Go 中 slice 的了解當元素的數(shù)量和容量的寬度相同時(len(fruits) == cap(fruits)),append() 產(chǎn)生的新元素就是新的引用。當元素個數(shù)小于容量(len(fruits) < cap(fruits))時,新元素被放入容量范圍內(nèi),導(dǎo)致所有其他具有相同引用的切片元素值發(fā)生變化。我有這樣的代碼package mainimport (    "fmt")func main() {    //declare slice    var fruits = []string{"banana", "mango", "tomato"}    //using two index technique to make slice    var newFruits = fruits[1:2]    //append element to fruits slice    fruits = append(fruits, "papaya")        //append element to newFruits slice    newFruits = append(newFruits, "dragon")    fmt.Println(cap(fruits)) //2    fmt.Println(cap(newFruits)) //6    fmt.Println(newFruits) //[mango dragon]    fmt.Println(fruits) //[banana mango tomato papaya]    }為什么水果的價值不是【香蕉芒果龍木瓜】?
查看完整描述

1 回答

?
繁華開滿天機

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

以下是代碼的工作原理:

就在附加papaya到之前fruits,

fruits = {"banana", "mango", "tomato"}

newFruits指向與 相同fruits但從 開始的數(shù)組mango。

當您追加papaya到時fruits,將創(chuàng)建一個容量=6 的新數(shù)組,因為 的容量fruits為 3。fruits現(xiàn)在指向這個新數(shù)組,具有 4 個值:

fruits = {"banana", "mango", "tomato", "papaya"}

newFruits仍然指向舊fruits數(shù)組,并包含 2 個元素。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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