range关键字在for循环中, 用于迭代数组, 切片, 通道, 集合
在数组和切片中返回索引和对应的值, 在集合中返回key
for index, val : = range slice {
}
数组和切片如下使用
func main() {
var s = []int{1,2,3,4,5} // 定义切片
sum := 0
for index , val := range s {
sum += val
if index ==2 {
break
}
}
fmt.Printf("%d", sum) // 6
}
如果不需要数组或切片的下标, 则可省略
func main() {
var s = []int{1,2,3,4,5}
sum := 0
for _ , val := range s { // 使用下划线省略索引
sum += val
}
fmt.Printf("%d", sum) // 15
}
range用在Map上
func main() {
kvs := map[string]string{"a": "apple", "b": "banana", "c":"orange"}
for k := range kvs {
fmt.Println(kvs[k])
}
}
range还可以用于遍历字符串
func main() {
var str = "abc123"
for i, c := range str {
fmt.Printf("%d -> %c\n", i, c)
}
}