代码演示
package main
import "fmt"
func main() {
nums := []int{2, 3, 4}
sum := 0
for _, num := range nums {
sum += num
}
fmt.Println("sum:", sum)
for i, num := range nums {
if num == 3 {
fmt.Println("index:", i)
}
}
kvs := map[string]string{"a": "apple", "b": "banana"}
for k, v := range kvs {
fmt.Printf("%s -> %s\n", k, v)
}
for k := range kvs {
fmt.Println("keys:", k)
}
for i, c := range "go" {
fmt.Println(i, c)
}
}
代码运行结果
sum: 9
index: 1
a -> apple
b -> banana
keys: a
keys: b
0 103
1 111
代码解读:
- 可以用range对slice和array中的元素求和
- range在对数组和slice中的每项索引和值进行访问,如果不需要索引,就用空白标识符“_”来忽略它
- range也可以在map映射中迭代键值对,当然也可以只遍历map的键
- range在字符串中迭代unicode码,第一个返回值是字符的起始字节位置,第二个是字符本身