Menu
Coddy logo textTech

マップの反復処理

CoddyのGOジャーニー「基礎」セクションの一部 — レッスン 92/109。

rangeキーワードを使用すると、マップ内のすべてのキーと値のペアを反復処理できます。各エントリに対して、キーと値の両方を返します。

果物の在庫のマップを作成します:

inventory := map[string]int{
    "apples": 5,
    "bananas": 8,
    "oranges": 12,
}

for fruit, quantity := range inventory {
    fmt.Printf("%s: %d\n", fruit, quantity)
}

結果には、各キーと値のペアが表示されます:

apples: 5
bananas: 8
oranges: 12

キーのみが必要な場合は、2番目の変数を省略できます:

for fruit := range inventory {
    fmt.Println(fruit)
}
challenge icon

チャレンジ

初心者

このチャレンジでは、Goのrangeキーワードを使用してマップを反復処理する練習をします。生徒の成績のマップが作成されています。あなたのタスクは、マップを反復処理し、各生徒の名前と成績を出力することです。

studentGradesマップを反復処理し、各生徒の名前と成績をStudent: [name], Grade: [grade]という形式で出力するようにコードを完成させてください。

チートシート

range を使用して、マップ内のキーと値のペアを反復処理します。

inventory := map[string]int{
    "apples": 5,
    "bananas": 8,
    "oranges": 12,
}

for fruit, quantity := range inventory {
    fmt.Printf("%s: %d\n", fruit, quantity)
}

キーのみを反復処理するには、2番目の変数を省略します。

for fruit := range inventory {
    fmt.Println(fruit)
}

自分で試してみよう

package main

import (
	"fmt"
	"sort"
)

func main() {
	// 学生の成績のマップ
	studentGrades := map[string]string{
		"Alice":  "A",
		"Bob":    "B",
		"Charlie": "B+",
		"David":  "A-",
		"Eva":    "C",
	}

	// 学生の名前(キー)をスライスに集めてソートする
	var names []string
	for name := range studentGrades {
		names = append(names, name)
	}
	sort.Strings(names)


	// TODO: ソートされた学生の名前のリストをループで回し、
	// 各学生の名前と成績を以下の形式で出力してください:
	// "Student: [name], Grade: [grade]"
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン