若是对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