若是對map或者slice使用for...range時,若是隻用一個迭代參數,返回的是索引仍是對應的值?code
for x,y := range map/slice時,其中第二個迭代參數能夠省略。因此若是隻用一個迭代參數,返回的將是索引值。
也就是說以下兩行代碼的功能相同:索引
for x := range map/slice for x,_ := range map/slice
好比以下代碼:string
package main import "fmt" func main(){ m := make(map[int]string) m[1] = "a" m[10] = "b" //使用兩個迭代參數 for k,v := range m{ fmt.Printf("k = %d v = %s\n", k, v) } //只用一個迭代參數 for x := range m{ fmt.Printf("x = %v\n", x) } }
運行結果爲:import
k = 1 v = a k = 10 v = b x = 1 x = 10