見出し画像

[Go言語 入門] rangeを使ったfor文

golangで作ってみたいものがあり、golangを学び始めたので学習したことを書いていくノート。

---------------------------------------------------

サイトマップはこちら

---------------------------------------------------

第9回 rangeを使ったfor文


rangeを使ったfor文の基本的な形は以下

「for 変数 := range 対象 { 処理 }」

対象をスライスとした場合。

// main.go

// スライスを定義
slice := []string{"apple", "banana", "orange", "lemon"}
 
for i, v := range slice {
	fmt.Println(i, v)
}

// 実行結果
// 0 apple
// 1 banana
// 2 orange
// 3 lemon

スライスの場合、「i」にはindex番号「v」には値が返される。

index番号、または要素の値が不要な場合は以下のように「_」で省略する。

// index番号不要
for _, v := range slice {
	fmt.Println(v)
}
fmt.Println("----------")

// 要素の値不要
for i, _ := range slice {
	fmt.Println(i)
}

// 実行結果
// apple
// banana
// orange
// lemon
// ----------
// 0
// 1
// 2
// 3


対象を map とした場合。

// mapを定義
m := map[string]int{"apple": 100, "banana": 200, "orange": 300, "lemon": 400}

for k, v := range m {
	fmt.Println(k, v)
}

mapの場合、「k」にはキー「v」には値が返される。

キー、または要素の値が不要な場合は以下のように書く。

// 値不要
for k := range m {
	fmt.Println(k)
}
fmt.Println("----------")

// キー不要
for _, v := range m {
	fmt.Println(v)
}

// 実行結果
// apple
// banana
// orange
// lemon
// ----------
// 100
// 200
// 300
// 400

map では値が不要な場合、「_」を使用せず省略することが可能。(「_」で省略も可)

キーが不要な場合は「_」が必要なので注意!

以上


この記事が気に入ったらサポートをしてみませんか?