range 语句

Golang 中的 range 语句

rang遍历

range 关键字用来遍历 listarray 或者 map。为了方便理解,可以认为 range 等效于 for earch index of

对于 arrays 或者 slices, 将会返回整型的下标;

// 对于数组,rang返回index
a := [...]string{"a", "b", "c", "d"}
for i := range a {
    fmt.Println("Array item", i, "is", a[i])
}

支持返回单值或者两个值, 如果返回一个值,那么为下标,否则为下标和下标所对应的值。

a := [...]string{"a", "b", "c", "d"}
for i, v := range a {
    fmt.Println("Array item", i, "is", v)
}

对于 map,将会返回下一个键值对的 key

// 对于map, range 返回 key 
capitals := map[string] string {"France":"Paris", "Italy":"Rome", "Japan":"Tokyo" }
for key := range capitals {
    fmt.Println("Map item: Capital of", key, "is", capitals[key])
}

同样支持返回两个值, 直接拿到key和对应的value:

capitals := map[string] string {"France":"Paris", "Italy":"Rome", "Japan":"Tokyo" }
for key, value := range capitals {
    fmt.Println("Map item: Capital of", key, "is", value)
}