Không. Bản đồ là tham chiếu theo mặc định.
package main
import "fmt"
func mapToAnotherFunction(m map[string]int) {
m["hello"] = 3
m["world"] = 4
m["new_word"] = 5
}
func main() {
m := make(map[string]int)
m["hello"] = 1
m["world"] = 2
for key, val := range m {
fmt.Println(key, "=>", val)
}
fmt.Println("-----------------------")
mapToAnotherFunction(m)
for key, val := range m {
fmt.Println(key, "=>", val)
}
fmt.Println("-----------------------")
}
Từ Golang Blog-
Loại bản đồ là loại tham chiếu, như con trỏ hoặc lát cắt, và vì vậy giá trị của m ở trên là 0; nó không trỏ đến một bản đồ đã khởi tạo. Một bản đồ nil hoạt động giống như một bản đồ trống khi đọc, nhưng việc cố gắng ghi vào một bản đồ nil sẽ gây ra sự hoảng loạn trong thời gian chạy; đừng làm vậy. Để khởi tạo bản đồ, hãy sử dụng hàm tạo sẵn:
m = make(map[string]int)
Liên kết đoạn mã Chơi với nó.