Go言語にはPHPにあるような foreach
ループはありません。
ただし、Goにはスライス、配列、マップを反復処理するための for
ループが用意されています。
スライスの要素を反復処理するために for
ループを使用したGo言語のサンプルコードを示します。
package main
import "fmt"
func main() {
numbers := []int{1, 2, 3, 4, 5}
for index, value := range numbers {
fmt.Println(index, value)
}
}
読めば分かるとは思いますが解説を、、。
この例ではfor
ループが range
キーワードを使って numbers
スライスを反復処理しています。
range
キーワードは各ループで2つの値を返します。現在の要素のインデックスと現在の要素の値です。
これらの値は、それぞれ index
と value
変数に代入されます。ループの本体は、 index
と value
変数を各繰り返し表示します。
なお、index
と value
変数の順序が重要であることに注意してください。スライスの値のみを反復処理する場合は、インデックスを無視するために _
(ブランク識別子)を使用することができます。
package main
import "fmt"
func main() {
numbers := []int{1, 2, 3, 4, 5}
for _, value := range numbers {
fmt.Println(value)
}
}
この例では、index
変数がブランク識別子(_
)で置き換えられ、無視されます。ループの本体では value
変数のみを使用します。