[Tutorial] Go by Example: Map


Maps là hàm dựng sẵn trong Go kiểu dữ liệu liên kết
(nó có vài tên gọi khác hashes hoặc dicts trong các ngôn ngữ khác).

package main

import "fmt"

func main() {

	// Tạo 1 map rỗng bằng cách sử dụng hàm `make`
	// `make(map[key-type]val-type)`.
	m := make(map[string]int)

	// Set 1 cặp key/value sử dụng cú pháp `name[key] = val`.
	m["k1"] = 7
	m["k2"] = 13

	// `fmt.Println` hiển thị tất cả các cặp key/value
	fmt.Println("map:", m)

	// Để lấy 1 giá trị của 1 khóa `key` thì sử dụng `name[key]`.
	v1 := m["k1"]
	fmt.Println("v1: ", v1)

	// Độ dài của map thì sử dụng hàm `len`
	fmt.Println("len:", len(m))

	// Để xóa 1 key trong map thì sử dụng hàm `delete`
	delete(m, "k2")
	fmt.Println("map:", m)

	// Khi lấy 1 giá trị từ map, giá trị trả về thứ 2(optional)
	// cho biết khóa(key) có tồn tại trong map hay không. Điều này
	// có thể sử dụng để phân biệt giữa ko có key vs key: `0` or `""`
	// Chúng ta không cần giá trị của map nên ignored nó bằng _blank identifier_  `_`
	_, prs := m["k2"]
	fmt.Println("prs:", prs)

	// Bạn có thể khai báo và khởi tạo `map` trên cùng 1 dòng
	n := map[string]int{"foo": 1, "bar": 2}
	fmt.Println("map:", n)
}

Source:

Ví dụ tiếp theo: Range