需要掌握的Go基礎之map:文末附面試題一道

2019-09-20     Go語言中文網

Go語言中提供的映射關係容器為map,其內部使用散列表(hash)實現。

map

map是一種無序的基於key-value的數據結構,Go語言中的map是引用類型,必須初始化才能使用。

map定義

Go語言中 map的定義語法如下:

其中,

  • KeyType:表示鍵的類型。
  • ValueType:表示鍵對應的值的類型。

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
  • key:表示要刪除的鍵值對的鍵

示例代碼如下:

按照指定順序遍歷map

元素為map類型的切片

下面的代碼演示了切片中的元素為map類型時的操作:

值為切片類型的map

下面的代碼演示了map中值為切片類型的操作:

面試題:

  1. 寫一個程序,統計一個字符串中每個單詞出現的次數。比如:」how do you do」中how=1 do=2 you=1。

原文連結:https://www.liwenzhou.com/posts/Go/08_map/

本文作者:李文周,原創授權發布

文章來源: https://twgreatdaily.com/zh-tw/E9woTm0BJleJMoPMXRNe.html