Kiểm tra khóa có tồn tại không
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 89 trên 109.
Trong Go, bạn có thể kiểm tra xem một khóa có tồn tại trong map hay không bằng cách dùng dạng gán hai giá trị. Điều này rất quan trọng vì khi truy cập một khóa không tồn tại, bạn sẽ nhận được giá trị không (zero value), có thể gây hiểu nhầm.
Tạo một cấu trúc ánh xạ mã quốc gia:
countries := map[string]string{
"US": "United States",
"CA": "Canada",
}
// Kiểm tra xem "UK" có trong map không
value, exists := countries["UK"]
fmt.Println("Value:", value, "Exists:", exists)Kết quả:
Value: Exists: falseGiá trị boolean exists cho bạn biết liệu khóa có được tìm thấy hay không. Hãy dùng giá trị này trong các câu lệnh điều kiện:
if _, exists := countries["US"]; exists {
fmt.Println("US is in the map")
}Kết quả:
US is in the mapThử thách
Người mớiTrong thử thách này, bạn sẽ luyện tập kiểm tra xem một khóa có tồn tại trong map hay không. Bạn có một map điểm của học sinh và cần kiểm tra xem điểm của một học sinh cụ thể có tồn tại trong map hay không.
Hoàn thiện đoạn code để kiểm tra xem học sinh 'Emma' có trong map điểm hay không, rồi in ra thông báo phù hợp.
Tự làm thử
package main
import "fmt"
func main() {
// Map lưu điểm của học sinh
grades := map[string]int{
"John": 85,
"Sarah": 92,
"Mike": 78,
"Lisa": 95,
}
// Học sinh cần kiểm tra
studentToCheck := "Emma"
// TODO: Kiểm tra xem studentToCheck có trong map grades không
// và lưu kết quả vào biến 'exists'
// Gợi ý: Dùng cú pháp comma-ok
// In ra kết quả
if exists {
fmt.Printf("%s's grade exists in the map\n", studentToCheck)
} else {
fmt.Printf("%s's grade does not exist in the map\n", studentToCheck)
}
}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 định9Con trỏ
Con trỏ là gì?Khai báo biến con trỏToán tử lấy địa chỉGiải tham chiếu con trỏDùng con trỏ trong hàmCon trỏ nilÔn tập: Tìm hiểu về con trỏ12Kiểu tổng hợp: map
Giới thiệu về mapKhai báo map literalTạo map bằng `make`Thêm và cập nhật cặp khóa-giá trịTruy cập giá trị trong mapKiểm tra khóa có tồn tại khôngXóa phần tử trong mapĐộ dài của mapDuyệt qua mapÔn tập: lưu trữ khóa-giá trịTự luyện tập: Trình biên dịch Go online