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