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

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

Go -- Invalid operation about array or slice

Go -- Invalid operation about array or slice

慕仙森 2019-03-15 18:56:03
相關(guān)代碼    //一些Array聲名     //m := [...]int{7:7}[3:]     //m := [3]int{}[3:]     //m := [14]int{4}[3:0]          //m := [14]int{17:1}  error array:beyond index          //right way for dec slice     //m := []int{4:5}         m := [...]int{7:7}[3:]      執(zhí)行上面的代碼會(huì)產(chǎn)生錯(cuò)誤:invalid operation [8]int literal[3:] (slice of unaddressable value),從其他語(yǔ)言來(lái)
查看完整描述

2 回答

?
蕭十郎

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

個(gè)人理解,
golang中的切片跟數(shù)組是不通的類(lèi)型結(jié)構(gòu)。切片時(shí)指向底層數(shù)組的可變的struct。
而數(shù)組是不可變的。你通過(guò)[...]int{7,7}這種定義的是不可變的數(shù)組,此時(shí)數(shù)組是無(wú)法像操作切片一樣進(jìn)行操作的。

查看完整回答
反對(duì) 回復(fù) 2019-03-15
?
梵蒂岡之花

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

m := [...]int{7: 7}[3:] [3:] 這種操作只能作用在變量上, 即已經(jīng)存在內(nèi)存地址的數(shù)據(jù)上, 而 [...]int{7: 7} 在賦值給變量前本身地址是不確定的,需要提前賦值給變量,之后才可以使用 [3:] 這樣的操作。

其次這種騷操作看不到任何有意義的地方, 還會(huì)造成內(nèi)存浪費(fèi),[...]int{7: 7} 相創(chuàng)建8個(gè)長(zhǎng)度的數(shù)組,而[3:]截取之后前三個(gè)元素你就沒(méi)有辦法再操作,嚴(yán)重浪費(fèi)內(nèi)存,導(dǎo)致內(nèi)存泄漏。

這種寫(xiě)法不符合 Go 的設(shè)計(jì), 不僅會(huì)造成內(nèi)存泄漏還會(huì)導(dǎo)致代碼不易維護(hù)和閱讀.

如果 [...]int{7:7}[3:] 語(yǔ)法正確, 那么下面拆分的代碼結(jié)果會(huì)是 [...]int{7:7}[3:] 的預(yù)期結(jié)果。

a := [...]int{7: 7}
m := a[3:]
fmt.Println(m)

但是有個(gè)更簡(jiǎn)單的創(chuàng)建 slice 的方法,它是簡(jiǎn)潔的,且不會(huì)造成內(nèi)存泄漏,m = []int{4: 7} ,其結(jié)果和上述代碼完全一致。

Go不需要很多語(yǔ)法糖,建議閱讀 go最佳實(shí)踐


查看完整回答
反對(duì) 回復(fù) 2019-03-15
  • 2 回答
  • 0 關(guān)注
  • 534 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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