golang之map資料類型

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

先上代碼……

package mainimport "fmt"func testMap() {    //兩種聲明map方式,切記,必須初始化才能用,否則panic    //var a map[string]string = map[string]string{    //    "key": "value",    //}    a := make(map[string]string, 10)    a["abc"] = "efg"    //map的key是唯一的,修改值可以直接改    a["abc"] = "efg2"    a["abc1"] = "efg"    fmt.Println(a)}//map嵌套map//map是無序排序func testMap2() {    a := make(map[string]map[string]string, 100)    a["key1"] = make(map[string]string)    a["key1"]["key2"] = "abc"    a["key1"]["key3"] = "abc"    a["key1"]["key4"] = "abc"    a["key1"]["key5"] = "abc"    fmt.Println(a)}func modify(a map[string]map[string]string) {    _, ok := a["zhangsan"]    if !ok {        a["zhangsan"] = make(map[string]string)    }    //與_,ok寫法一樣    //if a["zhangsan"] == nil {}    //    a["zhangsan"]["passwd"] = "123456"    a["zhangsan"]["nickname"] = "pangpang"    return}func testMap3() {    a := make(map[string]map[string]string, 100)    modify(a)    fmt.Println(a)}func trans(a map[string]map[string]string) {    for k, v := range a {        fmt.Println(k)        for k1, v1 := range v {            fmt.Println("\t", k1, v1)        }    }}func testMap4() {    a := make(map[string]map[string]string, 100)    a["key1"] = make(map[string]string)    a["key1"]["key2"] = "abc"    a["key1"]["key3"] = "abc"    a["key1"]["key4"] = "abc"    a["key1"]["key5"] = "abc"    //刪除map鍵的內建函數delete    //delete(a,"key1")    trans(a)    fmt.Println(len(a))}func testMap5() {    var a []map[int]int    a = make([]map[int]int, 5)    //for i:=0;i<5;i++{}    //map,slice判斷空是nil    if a[0] == nil {        a[0] = make(map[int]int)    }    a[0][10] = 10    fmt.Println(a)}func main() {    testMap()    testMap2()    testMap3()    testMap4()    testMap5()}

 map反轉

package mainimport (    "fmt"    "sort")func testMapSort() {    var a map[int]int    a = make(map[int]int, 5)    a[8] = 10    a[3] = 10    a[2] = 10    a[1] = 10    a[18] = 10    var keys []int    for k, _ := range a {        keys = append(keys, k)    }    sort.Ints(keys)    for _, v := range keys {        fmt.Println(v, a[v])    }}//map反轉func testMapSort1() {    var a map[string]int    var b map[int]string    a = make(map[string]int, 5)    b = make(map[int]string, 5)    a["abc"] = 101    a["efg"] = 10    for k, v := range a {        b[v] = k    }    fmt.Println(b)}func main() {    //testMapSort()    testMapSort1()}
map 索引值反轉

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.