一、for-range作用
golang对于循环遍历只提供for一个关键字,但是有2种方式进行遍历。
1.for [initStmt];[Condition];[PostStmt]{}
2.for-range,可以用来历容器类型如数组、切片和映射,channel等
二、for-range遍历注意事项
1.只有一个返回值时,则第一个参数为index
2.遍历map时为随机输出,slice则为索引顺序输出
3.range v时值拷贝方式,且只会声明初始化一次
三、for-range遍历切片原
1.计算遍历次数(切片长度)
2.每次遍历,都会把当前遍历到的值存放到一个 全局变量 index中
所以相当于在遍历之前就可以确定好了循环的次数
三、示例
package main
import “fmt”
func main() {
arr := []string{“a”, “b”, “c”, “d”}
testMap:= make(map[int]*string)
for index, value := range arr {
testMap[index] = &value
}
printMap(testMap)
}
func printMap(testMap map[int]*string) {
for key, value := range testMap {
fmt.Printf(“map[%v]=%v\n”, key, *value)
}
}
// 输出结果
0 => d
1 => d
2 => d
3 => d