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

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

Go 在數(shù)組子切片上的內(nèi)置范圍具有不一致的行為

Go 在數(shù)組子切片上的內(nèi)置范圍具有不一致的行為

Go
慕桂英3389331 2022-10-10 19:15:23
為什么我們不能使用 builtrange來指示給定數(shù)組索引的下限,但我們可以指定索引的上限?給定一片 int:array := []int{4, 76, -29, 3, 9, 223, 0, -3, -44, 76, 3, 98, 62, 144}我想在切片上進行范圍,不包括前兩個元素。我可以用for循環(huán)來做到這一點:for i := 2; i < len(array); i++ {        fmt.Printf("%d ", array[i])    }但不能使用內(nèi)置range:for i := range array[2:] {        fmt.Printf("%d ", array[i])    }奇怪的是,我可以排除上限的元素,如下所示:for i := range array[:5] {        fmt.Printf("%d ", array[i])    }在Go Playground上運行為什么是這樣?
查看完整描述

2 回答

?
繁花不似錦

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

表達式 array[2:] 計算為新的切片值。問題是應(yīng)用程序假設(shè)新切片中的元素與 array.


以下是解決該問題的幾種方法。


使用范圍值:


for _, v := range array[2:] {

   fmt.Printf("%d ", v)

}

索引到新切片:


s := array[2:]

for i := ranges s {

   fmt.Printf("%d ", s[i])

}

當(dāng)從末尾開始切片時array[:5],新切片中的元素與 中的對應(yīng)元素具有相同的索引array。


查看完整回答
反對 回復(fù) 2022-10-10
?
慕村225694

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

它確實有效,您只是在查看錯誤的切片。

表達式array[2:]是一個新切片,從array. 該切片的第 0 個元素是原始切片的第 2 個元素。這樣做,你會看到:

for i,value := range array[2:] {
        fmt.Printf("%d ", value)
        }

i范圍從 0 到 len(array)-2的值。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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