go語言學習 map中鍵值得刪除

2022-06-21 02:36:11 字數 1160 閱讀 3341

在例子 8.1 中,我們已經見過可以使用val1 = map1[key1]的方法獲取 key1 對應的值 val1。如果 map 中不存在 key1,val1 就是乙個值型別的空值。

這就會給我們帶來困惑了:現在我們沒法區分到底是 key1 不存在還是它對應的 value 就是空值。

為了解決這個問題,我們可以這麼用:val1, ispresent = map1[key1]

ispresent 返回乙個 bool 值:如果 key1 存在於 map1,val1 就是 key1 對應的 value 值,並且 ispresent為true;如果 key1 不存在,val1 就是乙個空值,並且 ispresent 會返回 false。

如果你只是想判斷某個 key 是否存在而不關心它對應的值到底是多少,你可以這麼做:

_, ok := map1[key1] //

如果key1存在則ok == true,否則ok為false

或者和 if 混合使用:

if _, ok :=map1[key1]; ok

從 map1 中刪除 key1:

直接delete(map1, key1)就可以。

如果 key1 不存在,該操作不會產生錯誤。

1

package main

2 import "

fmt"34

func main() else

1819 value, ispresent = map1["

paris"]

20 fmt.printf("

is \"paris\" in map1 ?: %t\n

", ispresent)

21 fmt.printf("

value is: %d\n

", value)

2223

//delete an item:

24 delete(map1, "

washington")

25 value, ispresent = map1["

washington"]

26if

ispresent else

31 }

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

go語言內建有map這種資料結構,它由無序的鍵值對組成,跟大部分語言中的map用法非常相似。它的鍵不能由可變型別 引用語義 的結構型別擔當,如切片 陣列 函式等等。map只有len,沒有cap。我們可以直接定義,或者通過make函式建立,通過make函式建立時,可以指定容量。package main...