ゴーランドのrangeを使った反復方法は何ですか?
Golangでは、rangeキーワードを使って、配列、スライス、マップ、チャネルなどのデータ構造を繰り返し処理することができます。使用法は以下の通りです。
- 配列とスライスの繰り返し:
arr := []int{1, 2, 3, 4, 5}
for idx, val := range arr {
fmt.Printf("Index: %d, Value: %d\n", idx, val)
}
- マップ関数:
m := map[string]int{"a": 1, "b": 2, "c": 3}
for key, val := range m {
fmt.Printf("Key: %s, Value: %d\n", key, val)
}
- 反復するチャネル:
ch := make(chan int)
go func() {
ch <- 1
ch <- 2
ch <- 3
close(ch)
}()
for val := range ch {
fmt.Println(val)
}
繰り返しの過程で、rangeキーワードは2つの値、つまりインデックス(またはキー)と対応する値を返します。そのうちの1つの値を受け取るために変数を使用するか、不要な値を捨てるためにアンダースコア _ を使用することができます。