Go cung cấp một kiểu dữ liệu quan trọng khác có tên là bản đồ ánh xạ các khóa duy nhất đến các giá trị. Khóa là một đối tượng mà bạn sử dụng để truy xuất giá trị vào một ngày sau đó. Với một khóa và một giá trị, bạn có thể lưu trữ giá trị trong một đối tượng Bản đồ. Sau khi giá trị được lưu trữ, bạn có thể truy xuất nó bằng cách sử dụng khóa của nó.
Xác định bản đồ
Bạn phải dùng làm chức năng tạo bản đồ.
/* declare a variable, by default map will be nil*/ var map_variable map[key_data_type]value_data_type /* define the map as nil map can not be assigned any value*/ map_variable = make(map[key_data_type]value_data_type)
Thí dụ
Ví dụ sau minh họa cách tạo và sử dụng bản đồ –
package main import "fmt" func main() { var countryCapitalMap map[string]string /* create a map*/ countryCapitalMap = make(map[string]string) /* insert key-value pairs in the map*/ countryCapitalMap["France"] = "Paris" countryCapitalMap["Italy"] = "Rome" countryCapitalMap["Japan"] = "Tokyo" countryCapitalMap["India"] = "New Delhi" /* print map using keys*/ for country := range countryCapitalMap { fmt.Println("Capital of",country,"is",countryCapitalMap[country]) } /* test if entry is present in the map or not*/ capital, ok := countryCapitalMap["United States"] /* if ok is true, entry is present otherwise entry is absent*/ if(ok){ fmt.Println("Capital of United States is", capital) } else { fmt.Println("Capital of United States is not present") } }
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
Capital of India is New Delhi Capital of France is Paris Capital of Italy is Rome Capital of Japan is Tokyo Capital of United States is not present
chức năng delete ()
Hàm delete () được sử dụng để xóa mục nhập khỏi bản đồ. Nó yêu cầu bản đồ và chìa khóa tương ứng phải được xóa. Ví dụ –
package main import "fmt" func main() { /* create a map*/ countryCapitalMap := map[string] string {"France":"Paris","Italy":"Rome","Japan":"Tokyo","India":"New Delhi"} fmt.Println("Original map") /* print map */ for country := range countryCapitalMap { fmt.Println("Capital of",country,"is",countryCapitalMap[country]) } /* delete an entry */ delete(countryCapitalMap,"France"); fmt.Println("Entry for France is deleted") fmt.Println("Updated map") /* print map */ for country := range countryCapitalMap { fmt.Println("Capital of",country,"is",countryCapitalMap[country]) } }
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
Original Map Capital of France is Paris Capital of Italy is Rome Capital of Japan is Tokyo Capital of India is New Delhi Entry for France is deleted Updated Map Capital of India is New Delhi Capital of Italy is Rome Capital of Japan is Tokyo