GO鐨剅ange鍏蜂綋浣跨敤
鍦℅o璇█涓紝range
鍏抽敭瀛楃敤浜庤凯浠f暟缁勶紙slice锛夈€佸瓧绗︿覆銆佹槧灏勶紙map锛夈€侀€氶亾锛坈hannel锛夋垨鑰呮槸鑷畾涔夌殑鏁版嵁缁撴瀯銆備娇鐢?code>range鍙互鏇存柟渚垮湴閬嶅巻杩欎簺鏁版嵁缁撴瀯銆?/p>
浣跨敤range
鐨勫叿浣撹娉曚负锛?/p>
for index, value := range data {
// 寰幆浣?/span>
}
-
index
浠h〃褰撳墠杩唬鐨勭储寮曪紙涓嬫爣锛夛紝濡傛灉涓嶉渶瑕佸彲浠ヤ娇鐢ㄤ笅鍒掔嚎锛?code>_锛夊拷鐣ャ€?/p> -
value
浠h〃褰撳墠杩唬鐨勫€笺€?/p>
data
鍙互鏄暟缁勶紙slice锛夈€佸瓧绗︿覆銆佹槧灏勶紙map锛夋垨鑰呴€氶亾锛坈hannel锛夈€傚叿浣撴晥鏋滃涓嬶細
- 杩唬鏁扮粍锛坰lice锛夋垨瀛楃涓诧細
arr := []int{1, 2, 3, 4, 5}
for index, value := range arr {
fmt.Printf("index: %d, value: %d\n", index, value)
}
杈撳嚭锛?/p>
index: 0, value: 1
index: 1, value: 2
index: 2, value: 3
index: 3, value: 4
index: 4, value: 5
- 杩唬鏄犲皠锛坢ap锛夛細
m := map[string]int{"a": 1, "b": 2, "c": 3}
for key, value := range m {
fmt.Printf("key: %s, value: %d\n", key, value)
}
杈撳嚭锛?/p>
key: a, value: 1
key: b, value: 2
key: c, value: 3
- 杩唬閫氶亾锛坈hannel锛夛細
ch := make(chan int)
go func() {
for i := 1; i <= 5; i++ {
ch <- i
}
close(ch)
}()
for value := range ch {
fmt.Printf("value: %d\n", value)
}
杈撳嚭锛?/p>
value: 1
value: 2
value: 3
value: 4
value: 5
姝ゅ锛?code>range杩樺彲浠ョ敤浜庤凯浠e瓧绗︿覆锛屽浜庡瓧绗︿覆锛?code>range浼氭寜鐓nicode瀛楃杩唬銆備緥濡傦細
str := "Hello, 涓栫晫"
for index, value := range str {
fmt.Printf("index: %d, value: %c\n", index, value)
}
杈撳嚭锛?/p>
index: 0, value: H
index: 1, value: e
index: 2, value: l
index: 3, value: l
index: 4, value: o
index: 5, value: ,
index: 6, value:
index: 7, value: 涓?index: 10, value: 鐣?