golang for range 只有一個迭代變量?

題目, 下面的代碼輸出golang

package main

import (
    "fmt"
)

func rangeAppend() {
    v := []int{1, 2, 3}
    for i := range v {
        v = append(v, i)
    }
    fmt.Printf("%v", v)
}

func main() {
    rangeAppend()
}

golang playground https://play.golang.org/p/MxP...app

爲何上面的程序輸出code

[1 2 3 0 1 2]

對於不一樣種類的range表達式結果值,for語句的迭代變量的數量能夠有所不一樣, 代碼中只有一個迭代變量的狀況意味着什麼呢?這意味着,該迭代變量只會表明當次迭代對應的元素值的索引值索引

下面代碼中的i 是索引值, 0 1 2get

for i := range v {
        v = append(v, i)
    }

for語句的迭代變量是兩個, 第一個是索引值, 第二個是迭代的值class

package main

import (
    "fmt"
)

func rangeAppend() {
    v := []int{1, 2, 3}
    for _, i := range v {
        v = append(v, i)
    }
    fmt.Printf("%v", v)
}

func main() {
    rangeAppend()
}

上面輸出import

[1 2 3 1 2 3]
相關文章
相關標籤/搜索