最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

GO語言映射(Map)用法分析

 更新時間:2014年12月10日 11:18:54   投稿:shichen2014  
這篇文章主要介紹了GO語言映射(Map)用法,以實例形式較為詳細的分析了針對映射的創(chuàng)建、填充、遍歷及修改等操作的技巧,需要的朋友可以參考下

本文實例講述了GO語言映射(Map)用法。分享給大家供大家參考。具體如下:

映射是一種內(nèi)置的數(shù)據(jù)結(jié)構(gòu),用來保存鍵值對的無序集合。

(1)映射的創(chuàng)建

make ( map [KeyType] ValueType, initialCapacity )

make ( map [KeyType] ValueType )

map [KeyType ] ValueType {}

map [KeyType ] ValueType { key1 : value1, key2: value2, ... , keyN : valueN}

如下,用4種方式分別創(chuàng)建數(shù)組,其中第一種和第二種的區(qū)別在于,有沒有指定初始容量,不過使用的時候則無需在意這些,因為map的本質(zhì)決定了,一旦容量不夠,它會自動擴容:

復(fù)制代碼 代碼如下:
func test1() {
    map1 := make(map[string]string, 5)
    map2 := make(map[string]string)
    map3 := map[string]string{}
    map4 := map[string]string{"a": "1", "b": "2", "c": "3"}
    fmt.Println(map1, map2, map3, map4)
}

輸出如下:

map[] map[] map[] map[c:3 a:1 b:2]

(2)映射的填充和遍歷

復(fù)制代碼 代碼如下:
func test2() {
    map1 := make(map[string]string)
    map1["a"] = "1"
    map1["b"] = "2"
    map1["c"] = "3"
    for key, value := range map1 {
        fmt.Printf("%s->%-10s", key, value)
    }
}

如上,數(shù)組的填充使用 map[key] = value 的方式,遍歷映射的時候,每一項都返回2個值,鍵和值。結(jié)果如下:

a->1    b->2    c->3   

(3)映射的查找、修改和刪除

復(fù)制代碼 代碼如下:
func test3() {
    map4 := map[string]string{"a": "1", "b": "2", "c": "3"}
    val, exist := map4["a"]
    val2, exist2 := map4["d"]
    fmt.Printf("%v,%v\n", exist, val)
    fmt.Printf("%v,%v\n", exist2, val2)

    map4["a"] = "8" //修改映射和添加映射沒什么區(qū)別
    fmt.Printf("%v\n", map4)

    fmt.Println("刪除b:")
    delete(map4, "b")
    fmt.Printf("%v", map4)
}

map指定key取對應(yīng)的value時,可以指定返回兩個值,第一個是對應(yīng)的value,第二個是一個bool,表示是否有值。如上,“a”肯定有值,"b"肯定沒值。

修改映射和添加映射的操作沒什么區(qū)別,若指定的鍵不存在則創(chuàng)建,否則,修改之。

刪除則是使用go的內(nèi)置函數(shù)delete,輸出如下:

true,1
false,
map[a:8 b:2 c:3]
刪除b:
map[a:8 c:3]

希望本文所述對大家的GO語言程序設(shè)計有所幫助。

相關(guān)文章

  • Go?net?http超時應(yīng)用場景全面詳解

    Go?net?http超時應(yīng)用場景全面詳解

    HTTP是一個復(fù)雜的多階段協(xié)議,因此沒有一個一刀切的超時解決方案,在這篇文章中,我將分解您可能需要應(yīng)用超時的各個階段,并研究在服務(wù)器端和客戶端上執(zhí)行超時的不同方法
    2024-01-01
  • Go語言學(xué)習(xí)之循環(huán)語句使用詳解

    Go語言學(xué)習(xí)之循環(huán)語句使用詳解

    這篇文章主要為大家介紹了Go語言中的常用循環(huán)語句的使用,例如:for循環(huán)、for-each、break等,文中的示例代碼講解詳細,感興趣的可以了解一下
    2022-04-04
  • Go指針數(shù)組和數(shù)組指針的具體使用

    Go指針數(shù)組和數(shù)組指針的具體使用

    go語言跟c語言一樣,指針數(shù)組和數(shù)組指針概念容易搞混,本文主要介紹了Go指針數(shù)組和數(shù)組指針的具體使用,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • golang實現(xiàn)大文件讀取的代碼示例

    golang實現(xiàn)大文件讀取的代碼示例

    在實際工作,我們需要讀取大數(shù)據(jù)文件,文件可能上G百G,所以我們不可能一次性的讀取到內(nèi)存,接下來本文給大家介紹了golang實現(xiàn)大文件讀取的示例,需要的朋友可以參考下
    2024-04-04
  • Golang編寫自定義IP限流中間件的方法詳解

    Golang編寫自定義IP限流中間件的方法詳解

    這篇文章給大家詳細的介紹了Golang編寫自定義IP限流中間件的方法,文章通過代碼實例介紹的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-09-09
  • golang拼接字符串的5種實現(xiàn)方式

    golang拼接字符串的5種實現(xiàn)方式

    文章總結(jié)了五種拼接字符串的方式,包括使用 "+"、strings.Join()、fmt.Sprint、bytes.Buffer 和 strings.Builder,每種方式都有其適用場景和性能特點
    2024-12-12
  • Go項目配置管理神器之viper的介紹與使用詳解

    Go項目配置管理神器之viper的介紹與使用詳解

    viper是一個完整的?Go應(yīng)用程序的配置解決方案,它被設(shè)計為在應(yīng)用程序中工作,并能處理所有類型的配置需求和格式,下面這篇文章主要給大家介紹了關(guān)于Go項目配置管理神器之viper的介紹與使用,需要的朋友可以參考下
    2023-02-02
  • golang 通用Contains方法分享

    golang 通用Contains方法分享

    這篇文章主要介紹了golang 通用Contains方法分享,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 深入淺析Go中三個點(...)用法

    深入淺析Go中三個點(...)用法

    這篇文章主要介紹了深入淺析Go中三個點(...)用法,需要的朋友可以參考下
    2021-10-10
  • 解析Golang中的GoPath和GoModule

    解析Golang中的GoPath和GoModule

    在Golang中,有兩個概念非常容易弄錯,第一個就是GoPath,第二個則是GoModule,很多初學(xué)者不清楚這兩者之間的關(guān)系,也就難以清晰地了解項目的整體結(jié)構(gòu),今天通過本文給大家介紹下Golang中的GoPath和GoModule相關(guān)知識,感興趣的朋友一起看看吧
    2022-02-02

最新評論

锡林郭勒盟| 嘉祥县| 安仁县| 邵武市| 迭部县| 蒙阴县| 西乡县| 衡阳市| 民勤县| 隆尧县| 龙南县| 马龙县| 偏关县| 盘锦市| 东宁县| 余江县| 兰西县| 左贡县| 府谷县| 太康县| 资溪县| 武城县| 保德县| 阿坝| 南郑县| 诸城市| 菏泽市| 长海县| 台中市| 射阳县| 乌拉特中旗| 东港市| 银川市| 阜阳市| 疏勒县| 开平市| 太白县| 青浦区| 旬阳县| 泰宁县| 门头沟区|