|
Maps là [kiểu dữ liệu liên kết] được tích hợp sẵn của Go(https://en.wikipedia.org/wiki/Associative_array) (đôi khi còn được gọi là hashes hoặc dicts trong các ngôn ngữ khác). |
![]()
package main |
import "fmt" |
|
func main() { |
|
|
Để tạo một map rỗng, sử dụng hàm tích hợp |
m := make(map[string]int)
|
|
Set các cặp key/value sử dụng cú pháp |
m["k1"] = 7
m["k2"] = 13
|
|
In ra một map với |
fmt.Println("map:", m)
|
|
Lấy một giá trị của một key bằng |
v1 := m["k1"]
fmt.Println("v1:", v1)
|
|
Nếu key không tồn tại, thì giá trị zero (zero value) (https://go.dev/ref/spec#The_zero_value) của loại value đó sẽ được trả về. |
v3 := m["k3"]
fmt.Println("v3:", v3)
|
|
Hàm tích hợp |
fmt.Println("len:", len(m))
|
|
Hàm tích hợp |
delete(m, "k2")
fmt.Println("map:", m)
|
|
Giá trị trả về thứ hai tùy chọn khi nhận được một
giá trị từ map cho biết liệu key có tồn tại hay không
trong map. Điều này có thể được sử dụng để phân biệt
giữa các key bị thiếu và các key có giá trị bằng 0
như |
//`_`.
_, prs := m["k2"]
fmt.Println("prs:", prs)
|
|
Bạn có thể khai báo và khởi tạo một map mới bằng một dòng với cú pháp này. |
n := map[string]int{"foo": 1, "bar": 2}
fmt.Println("map:", n)
}
|
|
Lưu ý rằng map thể hiện dưới dạng |
$ go run maps.go map: map[k1:7 k2:13] v1: 7 v3: 0 len: 2 map: map[k1:7] prs: false map: map[bar:2 foo:1] |
Ví dụ tiếp theo: Range.