Go語言範圍
range關鍵字用於循環遍曆數組,切片,管道或映射項目。數組和切片,它返回項目作為整數的索引。映射返回下一個鍵 - 值對的鍵。無論是範圍返回一個或兩個值。如果隻有一個值被用於在一係列表達式的左側,它是下表中的第一值。
範圍表達式 | 第一個值 | 第二個值(Optional) |
---|---|---|
數組或切片 a [n]E | index i int | a[i] E |
String s 字符串類型 | 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*/ coutryCapitalMap := 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