概述
Go 语言中 range 关键字用于 for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元素的索引和索引对应的值,在集合中返回 key-value 对。
for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环。
示例
package main
import "fmt"
func main() {
//1. 遍历数组
arr1 := [3]int{1, 2, 3}
for i, v := range arr1 {
fmt.Printf("(%d,%d)", i, v)
}
fmt.Println()
//2. 遍历slice
slice1 := []string{"red", "green", "blue"}
for i, v := range slice1 {
fmt.Printf("(%d,%s)", i, v)
}
fmt.Println()
//3. 遍历map
map1 := make(map[string]string)
map1["name"] = "jim"
map1["age"] = "20"
map1["sex"] = "male"
for k, v := range map1 {
fmt.Printf("(%s,%s)", k, v)
}
fmt.Println()
//4. 遍历字符串
str1 := "hello"
for i, v := range str1 {
fmt.Printf("(%d,%c)", i, v)
}
/*
(0,1)(1,2)(2,3)
(0,red)(1,green)(2,blue)
(name,jim)(age,20)(sex,male)
(0,h)(1,e)(2,l)(3,l)(4,o)
*/
}