Go - 范围



range 关键字用于 for 循环,用于迭代数组、切片、通道或映射中的项。对于数组和切片,它返回该项的索引,类型为整数。对于映射,它返回下一对键值对的键。Range 既返回一个值,也返回两个值。如果仅在一个 range 表达式的左侧使用一个值,它就是下表中的第 1 个值。

Range 表达式 第 1 个值 第 2 个值(可选)
数组或切片 a [n]E 索引 i int a[i] E
字符串 s string 类型 索引 i int 符文 int
映射 m map[K]V 键 k K 值 m[k] V
通道 c chan E 元素 e E

示例

以下段落展示了如何使用 range −

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
广告