范围关键字用于 for 循环,以迭代数组,切片,通道或地图的项目.对于数组和切片,它将项的索引作为整数返回.使用map,它返回下一个键值对的键.范围返回一个值或两个值.如果在范围表达式的左侧仅使用一个值,则它是下表中的第一个值.
范围表达式 | 第一个值 | 第二个值(可选) |
---|---|---|
Array or slice a [n]E | index i int | a [i] E |
String s string type | index i int | rune int |
map m map [K] V | key k K | value m [k] V |
channel c chan E | element e E | none |
以下段落显示如何使用范围 :
package main import "fmt" func main() { /* create a slice */ numbers := []int{0,1,2,3,4,5,6,7,8} /* print the numbers */ for i:= range numbers { fmt.Println("Slice item",i,"is",numbers[i]) } /* create a map*/ countryCapitalMap := map[string] string {"France":"Paris","Italy":"Rome","Japan":"Tokyo"} /* print map using keys*/ for country := range countryCapitalMap { fmt.Println("Capital of",country,"is",countryCapitalMap[country]) } /* print map using key-value*/ for country,capital := range countryCapitalMap { fmt.Println("Capital of",country,"is",capital) } }
当编译并执行上述代码时,它会产生以下结果 :
Slice item 0 is 0 Slice item 1 is 1 Slice item 2 is 2 Slice item 3 is 3 Slice item 4 is 4 Slice item 5 is 5 Slice item 6 is 6 Slice item 7 is 7 Slice item 8 is 8 Capital of France is Paris Capital of Italy is Rome Capital of Japan is Tokyo Capital of France is Paris Capital of Italy is Rome Capital of Japan is Tokyo