Kiểm tra khóa
Bài học 20 trên 21 trong khóa học Slice và map trong Go của Coddy.
Đến thời điểm này, chúng ta đã học cách thêm và xóa giá trị khỏi map. Trong bài học này, chúng ta sẽ học cách kiểm tra xem map có chứa một khóa cụ thể hay không. Ta có thể làm việc này bằng điều kiện if, như trong ví dụ sau:
var books = map[string]int{
"Golang": 1,
"Python": 2,
"Rust": 3,
}
if v, k := books["Python"]; k{
fmt.Println(v)
}Trong ví dụ này, chúng ta có một map tên là books. Dùng if, ta kiểm tra xem map có chứa khóa "Python" hay không. Nếu có, ta in ra giá trị tương ứng. Trong ví dụ này, kết quả sẽ là 2.
k trong <strong>books["Python"]; k{</strong> chứa một giá trị boolean, có thể là true hoặc false. Nếu khóa tồn tại, nó sẽ trả về true, và ta có thể kiểm tra điều này bằng cách in giá trị ra màn hình:
if v, k := books["Python"]; k{
fmt.Println(k,v)
}Đầu ra sẽ là:
true 1Go có một phiên bản đơn giản hơn, có thể viết như sau:
v, k := books ["a"]
fmt.Println(v, k)Lệnh này sẽ trả về giá trị v và k là một giá trị boolean true (nếu khóa tồn tại) hoặc false (nếu khóa không tồn tại):
0 false
Trong trường hợp này, a không có trong map, nên lệnh trả về 0 và false.
Thử thách
DễViết chương trình nhận đầu vào từ người dùng dưới dạng khóa và kiểm tra xem khóa này có tồn tại trong ánh xạ đã cho hay không:
- Nếu có, hãy in thông báo
<strong>"{key} exists with a value of {value}"</strong>.
{key} là khóa do người dùng nhập, còn {value} là giá trị tương ứng trong ánh xạ. - Nếu không có, hãy in
<strong>"{key} does not exist in the map"</strong>.
Tự làm thử
package main
import "fmt"
func main() {
// Nhận đầu vào từ bạn làm khóa. Đừng thay đổi phần này!
var key string
fmt.Scanln(&key)
// Ánh xạ books. Đừng thay đổi phần này!
books := map[string]int{
"Golang": 1,
"Python": 2,
"Rust": 3,
"Lua": 4,
"Java": 5,
}
// Kiểm tra xem khóa có tồn tại trong ánh xạ không
}Tất cả bài học trong Slice và map trong Go
1Giới thiệu
Giới thiệu3Slice phía sau hậu trường
Slice là một mảngTạo slice bằng makeSao chép sliceXóa một phần tửThử thách ôn tập #1Thử thách ôn tập #2Tự luyện tập: Trình biên dịch Go online