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

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

Go中數(shù)組的處理

Go中數(shù)組的處理

Go
慕仙森 2021-04-07 17:15:22
在http://golang.org/doc/effective_go.html#arrays閱讀了以下內(nèi)容之后...數(shù)組是值。將一個(gè)數(shù)組分配給另一個(gè)數(shù)組將復(fù)制所有元素。特別是,如果將數(shù)組傳遞給函數(shù),它將接收該數(shù)組的副本,而不是指向該數(shù)組的指針。......我希望在下面的代碼arr2是從不同的arr,和main()的arr是從不同shuffle()的arr。有人可以解釋為什么下面的代碼會(huì)亂七八糟arr2嗎?我知道Go還是一門年輕的語言;也許對(duì)數(shù)組的處理方式發(fā)生了變化?package mainimport (        "fmt"        "rand"        "time")func shuffle(arr []int) {        rand.Seed(time.Nanoseconds())        for i := len(arr) - 1; i > 0; i-- {                j := rand.Intn(i)                arr[i], arr[j] = arr[j], arr[i]        }}func main() {        arr := []int{1, 2, 3, 4, 5}        arr2 := arr        shuffle(arr)        for _, i := range arr2 {                fmt.Printf("%d ", i)        }}
查看完整描述

1 回答

?
慕田峪7331174

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

我認(rèn)為您的問題是您混淆了數(shù)組和切片。


數(shù)組是固定長度的值列表。實(shí)際上,您的示例中沒有使用任何數(shù)組??梢酝ㄟ^以下幾種方法聲明數(shù)組:


arr1 := [3]int{1, 2, 3}   // an array of 3 integers, 1-3

arr2 := [...]int{1, 2, 3} // same as the previous line, but we're letting

                          // the compiler figure out the size of the array

var arr3 [3]int           // a zeroed out array of 3 integers

您正在使用切片。切片是對(duì)基礎(chǔ)數(shù)組的引用。有幾種分配新切片的方法:


slice1 := []int{1, 2, 3}    // a slice of length 3 containing the integers 1-3

slice2 := make([]int, 3)    // a slice of length 3 containing three zero-value integers

slice3 := make([]int, 3, 5) // a slice of length 3, capacity 5 that's all zeroed out

其他任何切片分配都只是復(fù)制對(duì)數(shù)組的引用。


現(xiàn)在我們已經(jīng)確定了,


arr := []int{1, 2, 3, 4, 5}

創(chuàng)建一個(gè)切片,該切片引用包含數(shù)字1-5的匿名基礎(chǔ)數(shù)組。


arr2 := arr

重復(fù)該引用-它不復(fù)制底層數(shù)組。因此,存在一個(gè)基礎(chǔ)數(shù)組和對(duì)其的兩個(gè)引用。這就是為什么在修改arr的內(nèi)容時(shí)arr2的內(nèi)容會(huì)更改的原因。他們引用相同的數(shù)組。


查看完整回答
反對(duì) 回復(fù) 2021-04-26
  • 1 回答
  • 0 關(guān)注
  • 291 瀏覽

添加回答

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