Ánh xạ
Bài học 17 trên 21 trong khóa học Slice và map trong Go của Coddy.
Map là một kiểu tập hợp, giống như mảng và slice. Map lưu dữ liệu theo các cặp khóa và giá trị, đồng thời cho phép tra cứu giá trị nhanh chóng.
Cú pháp khai báo map như sau:
products := map[string]int{}Tương tự như khi khai báo biến cho mảng và slice, ta có thể dùng cách khai báo ngắn (:=) hoặc từ khóa var, theo sau là tên, rồi đến từ khóa map. Bên trong dấu ngoặc vuông, ta chỉ định kiểu của khóa, cuối cùng là kiểu của giá trị hay kiểu của phần tử.
Slice và mảng cũng là các kiểu khóa-giá trị, nhưng khóa chỉ là chỉ số. Trong map, ta có thể dùng bất kỳ kiểu nào làm khóa, miễn là kiểu đó có thể so sánh được. Các kiểu thường dùng là int và string.
Tất cả phần tử trong map phải có cùng kiểu, bạn không thể kết hợp nhiều kiểu trong một map.
Hãy khởi tạo map:
products := map[string]int{
"iPhone": 1200,
"MacBook": 4000,
"Keyboard": 400,
}Tương tự như với slice và mảng, ta có thể truy cập các phần tử bằng khóa. Trong trường hợp này, khóa là giá trị ta đã xác định cho từng phần tử. Ví dụ, để lấy giá của bàn phím:
fmt.Println("The Price of Keyboard:", products["Keyboard"])Đầu ra:
The Price of Keyboard: 400Ta có thể in ra tất cả phần tử của map, giống như với slice:
fmt.Println(products)Kết quả sẽ là:
map[iPhone:1200 MacBook:4000 Keyboard:400]
Thử thách
DễChúng ta có một tập hợp sách, mỗi cuốn có số trang khác nhau như sau:
- Sách Python có 300 trang
- Sách Golang có 400 trang
- Sách Rust có 500 trang
Hãy triển khai bằng bản đồ và in ra số trang của sách Golang .
Tự làm thử
package main
import "fmt"
func main() {
// Định nghĩa một map
// In ra số trang của cuốn sách Golang
}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