欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

GO?集合?map?使用示例小結(jié)

 更新時間:2023年06月21日 08:35:34   作者:香吧香  
Go語言的集合稱為映射(map),它是一種無序的鍵值對(key-value)的集合,集合是通過鍵(key)來快速檢索值(value)的,鍵(key)類似于索引,它指向值(value)的數(shù)據(jù),這篇文章主要介紹了GO集合map使用總結(jié),本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

Go語言的集合稱為映射(map),它是一種無序的鍵值對(key-value)的集合,集合是通過鍵(key)來快速檢索值(value)的,鍵(key)類似于索引,它指向值(value)的數(shù)據(jù)。

1.定義map變量語法 

var m map[keyType]valueType  // 聲明一個空的 map 變量
m := make(map[keyType]valueType)  // 創(chuàng)建一個空的 map 變量

其中keyTypevalueType分別表示鍵和值的類型,可以是任意基本數(shù)據(jù)類型、引用類型或結(jié)構(gòu)體類型。

2.設(shè)值和取值

m[key] = value  // 向 map 中添加或修改鍵值對
v, ok := m[key]  // 從 map 中獲取鍵對應(yīng)的值,ok 表示是否存在該鍵

3.刪除元素

delete(m, key)  // 從 map 中刪除指定鍵的元素

4.遍歷map:

// 遍歷鍵值對
for key, value := range m {
    fmt.Println(key, value)
}
// 遍歷鍵
for key := range m {
    fmt.Println(key)
}
// 遍歷值
for _, value := range m {
    fmt.Println(value)
}

5.使用示例:

package main
import "fmt"
func main() {
    // 定義一個 map 變量
    m := make(map[int]string)
    // 向 map 中添加鍵值對
    m[1] = "apple"
    m[2] = "banana"
    m[3] = "cherry"
    // 獲取 map 中指定鍵的值
    v1, ok1 := m[1]
    v4, ok4 := m[4]
    // 輸出結(jié)果
    fmt.Println(v1, ok1)
    fmt.Println(v4, ok4)
    // 遍歷 map 中的鍵值對
    for k, v := range m {
        fmt.Println(k, v)
    }
}

6.map 使用interface類型的值  

在 Go 的map中,值的類型為interface{}時,可以存儲各種類型的數(shù)據(jù),這是因?yàn)?code>interface{}類型是一種空接口,它可以表示任何類型的值。具體來說,一個interface{}類型的變量可以存儲任何實(shí)現(xiàn)了空接口的方法集的類型的值,包括基本類型、引用類型、函數(shù)類型、結(jié)構(gòu)體類型和接口類型等。這種類型的變量不關(guān)注具體存儲的值是什么類型,只關(guān)注該值是否實(shí)現(xiàn)了空接口的方法集。因此,可以使用空接口類型來實(shí)現(xiàn)一個通用的map變量,可以存儲任意類型的值。 例如,下面是一個使用空接口類型的map變量,可以存儲任意類型的值:

package main
import "fmt"
func main() {
    m := make(map[string]interface{})
    m["name"] = "Tom"
    m["age"] = 18
    m["gender"] = true
    fmt.Println(m)
}

在上面的例子中,我們使用空接口類型interface{}作為map中值的類型,可以存儲字符串、整數(shù)和布爾值等不同類型的值。最終的輸出結(jié)果如下:

map[age:18 gender:true name:Tom]

需要注意的是,當(dāng)我們從這個map變量中獲取值時,需要進(jìn)行類型斷言,以確定具體的值的類型。例如,可以使用如下代碼獲取鍵為"name"的值:

name, ok := m["name"].(string)
if ok {
    fmt.Println(name)
}

在上面的代碼中,使用斷言操作符.(string)將取出的值斷言為字符串類型,并將結(jié)果存儲到name變量中。如果鍵為"name"的值確實(shí)是字符串類型,則ok的值為true,否則為false。如果ok的值為true,則表示斷言操作成功,可以安全地使用name變量;否則,表示斷言操作失敗,name變量的值為類型的零值。

到此這篇關(guān)于GO集合map使用總結(jié)的文章就介紹到這了,更多相關(guān)GO集合map使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • GoLang string類型深入分析

    GoLang string類型深入分析

    string 作為 go 語言中的基礎(chǔ)類型,其實(shí)有一些需要反復(fù)揣摩的,可能是我們使用的場景太簡單,也可能是我們不需要那可憐的一點(diǎn)優(yōu)化來提高性能,對它也就沒那么上心了
    2023-01-01
  • Go 中燒腦的接口及空接口

    Go 中燒腦的接口及空接口

    在Go語言的實(shí)際編程中,幾乎所有的數(shù)據(jù)結(jié)構(gòu)都圍繞接口展開,接口是Go語言中所有數(shù)據(jù)結(jié)構(gòu)的核心,這篇文章主要介紹了Go 中燒腦的接口,需要的朋友可以參考下
    2024-02-02
  • Go使用XORM操作MySQL的陷阱盤點(diǎn)分析

    Go使用XORM操作MySQL的陷阱盤點(diǎn)分析

    在?Go?語言開發(fā)中,大家為了方便,通常會選擇使用?ORM?操作數(shù)據(jù)庫,比如使用?XORM?或?GORM?操作?MySQL,本文我們來介紹一下使用?XORM[3]?操作?MySQL?可能會遇到的陷阱
    2023-11-11
  • GO語言中通道和sync包的使用教程分享

    GO語言中通道和sync包的使用教程分享

    這篇文章主要為大家詳細(xì)介紹了Go語言中通道和sync包的相關(guān)資料,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Go語言有一定的幫助,需要的可以參考一下
    2023-02-02
  • Golang校驗(yàn)字符串是否JSON格式的方法總結(jié)

    Golang校驗(yàn)字符串是否JSON格式的方法總結(jié)

    這篇文章主要為大家詳細(xì)介紹了Golang中校驗(yàn)字符串是否JSON格式的方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2023-04-04
  • Go語言的代碼組織結(jié)構(gòu)詳細(xì)介紹

    Go語言的代碼組織結(jié)構(gòu)詳細(xì)介紹

    這篇文章主要介紹了Go語言的代碼碼組織結(jié)構(gòu)詳細(xì)介紹,即Go語言源碼的文件結(jié)構(gòu),本文講解了包、main和main.main、os包等內(nèi)容,需要的朋友可以參考下
    2014-10-10
  • 一文深入探索Go語言中的循環(huán)結(jié)構(gòu)

    一文深入探索Go語言中的循環(huán)結(jié)構(gòu)

    在編程中,循環(huán)結(jié)構(gòu)扮演著重要的角色,它使我們能夠有效地重復(fù)執(zhí)行特定的代碼塊,以實(shí)現(xiàn)各種任務(wù)和邏輯,在Go語言中,for 是 Go 中唯一的循環(huán)結(jié)構(gòu),本文將深入探討Go語言中的for循環(huán)類型以及它們的用法
    2023-08-08
  • Golang中List的實(shí)現(xiàn)方法示例詳解

    Golang中List的實(shí)現(xiàn)方法示例詳解

    最近決定復(fù)習(xí)下Go,所以下面這篇文章主要給大家介紹了關(guān)于Golang中List的實(shí)現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • 重學(xué)Go語言之如何開發(fā)RPC應(yīng)用

    重學(xué)Go語言之如何開發(fā)RPC應(yīng)用

    這篇文章主要為大家詳細(xì)介紹了在Go語言中如何構(gòu)建RPC應(yīng)用,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-09-09
  • 淺析Go語言中的逃逸分析

    淺析Go語言中的逃逸分析

    在Go語言中,內(nèi)存分配和逃逸分析是至關(guān)重要的概念,對于理解代碼的性能和內(nèi)存使用情況至關(guān)重要,本文將深入探討Go語言中的內(nèi)存分配原理以及逃逸分析的作用,希望對大家有所幫助
    2024-04-04

最新評論