go語言學習筆記 map

2021-09-25 02:44:17 字數 1707 閱讀 7035

go語言內建有map這種資料結構,它由無序的鍵值對組成,跟大部分語言中的map用法非常相似。

它的鍵不能由可變型別(引用語義)的結構型別擔當,如切片、陣列、函式等等。

map只有len,沒有cap

我們可以直接定義,或者通過make函式建立,通過make函式建立時,可以指定容量。

package main

import

"fmt"

func

main()

fmt.

println

(m4)

}

這裡的遍歷類似python字典的遍歷,使用迭代器遍歷,第乙個值為key,第二個值為value,並且,迭代結果是無序的。

下面還給出了如何判斷乙個key值是否存在的方法,呼叫map,會有2個返回值,第乙個是value值,第二個是key值是否存在,若存在,則返回true否則返回false

package main

import

"fmt"

func

main()

//第乙個返回值為key,第二個為value,迭代無序

for key, value :=

range mp1

// 如何判斷乙個key值是否存在

// 第乙個返回值為key所對應的value,第二個返回值為key是否存在的狀態,存在為true,不存在為false

value, ok := mp1[1]

if ok ==

true

else

}

map的賦值類似c語言和python的語言,具體操作如下,且容量不夠時map會進行自動擴容。

package main

import

"fmt"

func

main()

fmt.

println

("mp1 = "

, mp1)

// 自動擴容

mp1[4]

="d"

fmt.

println

("mp1 = "

, mp1)

// 有重複值會覆蓋前乙個值

mp1[4]

="e"

fmt.

println

("mp1 = "

, mp1)

}

我們可以使用delete函式來刪除map中的值,第乙個引數為map物件,第二個引數為要刪除的鍵值對的key值。

package main

import

"fmt"

func

main()

fmt.

println

("m = "

, m)

delete

(m,1

)//刪除key值為1的內容

fmt.

println

("m = "

, m)

}

Go語言學習筆記 map

學習筆記根據 無聞 go語言基礎教程 整理 package main import fmt sort func main 普通建立方式 func test1 fmt.println m map 使用make關鍵字建立 func test2 直接宣告和賦值建立 func test3 使用更簡單的方式 ...

go語言學習筆記 map

理解 map是由一組無序的鍵key值value對集合的內建型別,可以通過鍵來獲取對應的值,map和slices一樣,也是引用型別 注意 map之間不能使用 操作符來判斷 建立map 語法 map type of key type of value var mymap map string int n...

Go語言學習筆記 map

map是雜湊表的引用,map的型別為map k v,k和v是字典的鍵和值對應的資料型別,map中所有的鍵都擁有相同的資料型別,同時所有的值都擁有相同的資料型別,但鍵的型別和值的型別不一定相同 鍵的型別k必須是可以通過操作符 來進行比較的資料型別,所以map可以檢測某乙個鍵是否已經存在 ages ma...