導入
スライス(次章で学ぶ「並び」)や文字列を先頭から順に処理したいとき、for range を使うと添字を自分で管理せずに回せます。
説明
package main
import "fmt"
func main() {
fruits := []string{"りんご", "みかん", "ぶどう"}
for i, name := range fruits {
fmt.Printf("%d番目: %s\n", i, name)
}
}
range fruitsは、要素を1つずつ取り出しながら「添字, 値」の2つを返します。- 添字が要らないときは
_(アンダースコア)で受け取って捨てます:for _, name := range fruits。 - 値が要らず添字だけ欲しいときは
for i := range fruitsと書けます。
実行結果:
0番目: りんご
1番目: みかん
2番目: ぶどう
Go では「使わない変数」を残すとエラーになるため、_ で明示的に捨てる書き方が頻繁に登場します。
やってみよう
for i, name := range fruits の i を使わずに残すと、「i を宣言したのに使っていない」というエラーになります。添字が不要なら for _, name := range fruits に直します。