Range
优质
小牛编辑
126浏览
2023-12-01
range关键字在for循环中用于迭代数组,切片,通道或映射的项。 对于数组和切片,它将项的索引作为整数返回。 使用地图,它返回下一个键值对的键。 范围返回一个值或两个值。 如果在范围表达式的左侧仅使用一个值,则它是下表中的第一个值。
范围表达 | 第一价值 | 第二个值(可选) |
---|---|---|
数组或切片a [n] E. | index i int | a [i] E |
字符串的字符串类型 | index i int | rune int |
map m map [K] V | 键k K. | 值m [k] V. |
频道c chan E. | 元素e E. | none |
例子 (Example)
以下段落显示如何使用范围 -
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