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: 12Go 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)
}Thử thách
Người mớiTrong 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]"
}
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
4Toán tử so sánh và logic
Toán tử so sánh, phần 1Toán tử so sánh, phần 2Toán tử AND logicToán tử OR logicToán tử NOT logicCơ bản về thứ tự ưu tiên của toán tửÔn tập: thực hiện phép so sánh7Luồng điều khiển: vòng lặp
Giải thích vòng lặp `for`Vòng lặp `for` cơ bảnVòng lặp `for` chỉ có điều kiệnTừ khóa `break`Từ khóa `continue`Vòng lặp lồng nhauÔn tập: lặp lại hành động2Biến và các kiểu dữ liệu cơ bản
Biến là gìSuy luận kiểu với `:=`Số nguyên (int)Số dấu phẩy độngGiá trị BooleanChuỗiGiá trị 0Hằng sốQuy ước đặt tênÔn tập: biến và kiểu dữ liệu5Đầu vào/đầu ra cơ bản
Đầu ra có định dạngĐộng từ định dạngIn các kiểu dữ liệuNhận đầu vào cơ bản từ người dùngÔn tập: đầu vào và đầu ra8Hàm
Tìm hiểu về hàmKhai báo hàmGọi hàmTham số của hàmTrả về một giá trịTrả về nhiều giá trịGiá trị trả về có tênNhững điều cơ bản về phạm vi của hàmÔn tập: Tạo code có thể tái sử dụng3Toán tử cơ bản
Toán tử số họcToán tử chiaToán tử moduloToán tử gánToán tử gán kết hợpTăng và giảmÔn tập: Tính toán6Luồng điều khiển: câu lệnh điều kiện
Câu lệnh `if`Từ khóa `else`Từ khóa `else if`Biến bị che khuất trong `if`Khởi tạo biếnCâu lệnh `switch``switch` có biểu thức`switch` không có biểu thứcTừ khóa `fallthrough`Ôn tập: đưa ra quyết địnhTự luyện tập: Trình biên dịch Go online