Go語言中提供的映射關係容器為map,其內部使用散列表(hash)實現。
map
map是一種無序的基於key-value的數據結構,Go語言中的map是引用類型,必須初始化才能使用。
map定義
Go語言中 map的定義語法如下:
其中,
map類型的變量默認初始值為nil,需要使用make()函數來分配內存。語法為:
其中cap表示map的容量,該參數雖然不是必須的,但是我們應該在初始化map的時候就為其指定一個合適的容量。
map基本使用
map中的數據都是成對出現的,map的基本使用示例代碼如下:
輸出:
map也支持在聲明的時候填充元素,例如:
判斷某個鍵是否存在
Go語言中有個判斷map中鍵是否存在的特殊寫法,格式如下:
舉個例子:
map的遍歷
Go語言中使用for range遍歷map。
但我們只想遍歷key的時候,可以按下面的寫法:
注意: 遍歷map時的元素順序與添加鍵值對的順序無關。
使用delete()函數刪除鍵值對
使用delete()內建函數從map中刪除一組鍵值對,delete()函數的格式如下:
其中,
示例代碼如下:
按照指定順序遍歷map
元素為map類型的切片
下面的代碼演示了切片中的元素為map類型時的操作:
值為切片類型的map
下面的代碼演示了map中值為切片類型的操作:
面試題:
原文連結:https://www.liwenzhou.com/posts/Go/08_map/
本文作者:李文周,原創授權發布