Menu
CoddyTech

Duyệt qua map

Thuộc phần Kiến thức nền tảng trong hành trình GO của Coddy. Bài học 92 trên 109.

Từ khóa range cho phép bạn lặp qua tất cả các cặp khóa và giá trị trong một map. Từ khóa này trả về cả khóa lẫn giá trị của mỗi mục.

Tạo một bản đồ về số lượng trái cây trong kho:

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

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

Kết quả hiển thị từng cặp khóa-giá trị:

apples: 5
bananas: 8
oranges: 12

Go không đảm bảo thứ tự mà range duyệt qua các mục trong map, vì vậy các dòng này có thể xuất hiện theo thứ tự khác nhau mỗi lần vòng lặp chạy.

Nếu bạn chỉ cần các khóa, bạn có thể bỏ qua biến thứ hai:

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

Thử thách

Người mới

Trong thử thách này, bạn sẽ luyện tập lặp qua một map bằng từ khóa range trong Go. Một map chứa điểm số của học sinh đã được tạo sẵn cho bạn. Nhiệm vụ của bạn là lặp qua map và in ra tên cùng điểm số của từng học sinh.

Hoàn thiện code để lặp qua map studentGrades và in ra tên cùng điểm số của từng học sinh theo định dạng: Student: [name], Grade: [grade]

Tự làm thử

package main

import (
	"fmt"
	"sort"
)

func main() {
	// Một map lưu điểm của học sinh
	studentGrades := map[string]string{
		"Alice":  "A",
		"Bob":    "B",
		"Charlie": "B+",
		"David":  "A-",
		"Eva":    "C",
	}

	// Thu thập tên học sinh (các khóa) vào một slice để sắp xếp
	var names []string
	for name := range studentGrades {
		names = append(names, name)
	}
	sort.Strings(names)


	// TODO: Duyệt qua danh sách tên học sinh đã sắp xếp
	// và in ra tên cùng điểm của từng học sinh theo định dạng:
	// "Student: [name], Grade: [grade]"
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Trình biên dịch Go online