丝袜av在线观看|日本美女三级片在线播放|性欧美一区二区三区|小骚热免费国产视频|黑人va在线观看|女同国产91视频|五月丁香色播Av|国产凸凹视频一区二区|伊人电影久久99|国产成人无码一区二区观看

Golang 語言Map(集合)

在 Go 語言(Golang)中,Map 是一種內(nèi)置的數(shù)據(jù)結(jié)構(gòu),它存儲(chǔ)了一組鍵值對(duì)(Key-Value pairs)。Map 的鍵(Key)必須是支持相等性比較的類型(如整型、字符串、結(jié)構(gòu)體等),而值(Value)則可以是任意類型。Map 提供了快速查找、插入和刪除鍵值對(duì)的能力,是一種非常高效的數(shù)據(jù)結(jié)構(gòu)。

Map 的聲明

Map 可以通過以下方式聲明:

map[KeyType]ValueType

其中,KeyType 是鍵的類型,ValueType 是值的類型。

例如,聲明一個(gè)存儲(chǔ)字符串鍵和整型值的 Map:

ages := make(map[string]int)

或者,使用字面量直接初始化:

ages := map[string]int{
    "Alice": 30,
    "Bob":   25,
    "Charlie": 35,
}

Map 的基本操作

1. 插入或更新鍵值對(duì)

使用 = 操作符給 Map 賦值時(shí),如果鍵已經(jīng)存在,則更新對(duì)應(yīng)的值;如果鍵不存在,則添加新的鍵值對(duì)。

   ages["Dave"] = 40

2. 訪問值

通過鍵來訪問 Map 中的值。如果鍵不存在,則返回一個(gè)值類型的零值。對(duì)于整型,零值是 0;對(duì)于字符串,零值是空字符串 "";等等。

   age := ages["Alice"] // 返回 30
   ageOfDave := ages["Dave"] // 返回 40
   ageOfEve := ages["Eve"] // 返回 0,因?yàn)?"Eve" 不在 Map 中

3. 檢查鍵是否存在

在 Go 中,通常使用兩個(gè)步驟來檢查鍵是否存在:首先嘗試訪問鍵對(duì)應(yīng)的值,然后使用額外的邏輯(如與零值比較)來判斷鍵是否真的存在。但從 Go 1.18 開始,可以使用 map 訪問的逗號(hào)操作符來獲取值和一個(gè)布爾值,該布爾值指示鍵是否存在于 Map 中。

   if age, ok := ages["Alice"]; ok {
       fmt.Println("Age:", age)
   } else {
       fmt.Println("Key 'Alice' does not exist.")
   }

4. 刪除鍵值對(duì)

使用內(nèi)置的 delete 函數(shù)來刪除 Map 中的鍵值對(duì)。如果鍵不存在,delete 函數(shù)不會(huì)報(bào)錯(cuò)。

   delete(ages, "Bob")

5. 遍歷 Map

使用 for range 循環(huán)來遍歷 Map。遍歷的順序在 Go 中是不確定的,且每次運(yùn)行都可能不同。

   for key, value := range ages {
       fmt.Println("Key:", key, "Value:", value)
   }

注意事項(xiàng)

  • Map 的零值是 nil。未初始化的 Map 是 nil,且不能用于存儲(chǔ)鍵值對(duì)。在使用前,你需要通過 make 函數(shù)或字面量來初始化它。
  • Map 的長度可以通過內(nèi)置的 len 函數(shù)來獲取,但該函數(shù)返回的是鍵值對(duì)的數(shù)量,而不是 Map 分配的內(nèi)存大小。
  • Map 是引用類型,傳遞時(shí)傳遞的是指針。因此,如果你將 Map 傳遞給函數(shù),并在函數(shù)內(nèi)部對(duì)其進(jìn)行修改,那么這些修改將反映到原始 Map 上。
  • 在并發(fā)環(huán)境下直接修改 Map 是不安全的。如果你需要在多個(gè) goroutine 中安全地讀寫 Map,應(yīng)該使用 sync.Map 或其他同步機(jī)制來保護(hù)對(duì) Map 的訪問。
推薦主頁
個(gè)人博客 技術(shù)博客 博客模版 AnQiCMS建站 安企CMS建站 網(wǎng)站營銷 安企cms仿站 George Soros 喬治·索羅斯 Benjamin Graham 本杰明·格雷厄姆 John Templeton 約翰·鄧普頓 Peter Lynch 彼得·林奇 Warren Buffett 沃倫·巴菲特 GoPay Raycast Nintendo Meta 美聯(lián)儲(chǔ) 美式期權(quán) 美股做空 美股開戶 分析方法 CTA策略 期貨基礎(chǔ)知識(shí) 基金基礎(chǔ)知識(shí) 股票術(shù)語 交易策略 金融指數(shù) 金融市場(chǎng) 交易所 股票基礎(chǔ) 多多招商團(tuán)長 多多團(tuán)長 多多買菜 請(qǐng)假條模板 豬糞烘干機(jī) 小型雞糞烘干機(jī) 上海到吳忠物流專線 上海到中衛(wèi)物流專線 上海到固原物流專線 上海到銀川物流專線 上海到寧夏物流專線 知乎seo 拼多多團(tuán)長 自學(xué)做網(wǎng)站 學(xué)做網(wǎng)站 華為 OpenAI 馬斯克 三星 Go語言 Golang Golang語言 小紅書帶貨筆記 小紅書帶貨 wordpress教程 WordPress建站服務(wù)器 WordPress建站教程 WordPress建站服務(wù) WordPress建站公司 小紅書筆記帶貨 抖音客服 抖音視頻 抖音軟件 快手商家 快手極速版 快手網(wǎng)頁版 抖音藍(lán)v 抖音創(chuàng)作者服務(wù)中心 抖音創(chuàng)作者服務(wù)平臺(tái) 抖音創(chuàng)作中心 抖音下載安裝 58同城 抖音訂單 抖音網(wǎng)頁創(chuàng)作者中心 抖音網(wǎng)頁版 番茄小說 抖音短視頻 抖音創(chuàng)作者中心 抖音創(chuàng)作服務(wù)平臺(tái) 抖音官網(wǎng) 抖音極速版 抖音直播 抖音下載 短視頻IP孵化廠家 短視頻IP孵化 快手電商 短視頻IP 小紅書推廣 微信支付 寶塔軟件 寶塔 wordpress模板 linux 云服務(wù)器 wordpress安裝