Go Map基本操作-增删改查

go中的map是hash表的一个引用,类型写为:map[key]value,其中的key, value分别对应一种数据类型,如map[string]string

 

1.map初始化

复制代码
package main

import "fmt"

func main() {
    //初始化
    var m1 = make(map[interface{}]interface{})
    m1["1"] = "c"
    m1["c1"] = 1
    fmt.Println(m1)

    // m0 string
    var m0 map[string]string // 定义map类型变量m0,key的类型为string,value的类型string
    fmt.Println(m0)          // 输出: map[]

    // m2 interface{}
    var m2 map[interface{}]string
    m2 = make(map[interface{}]string)
    //m1[[]byte("k2")]="v2" // panic: runtime error: hash of unhashable type []uint8
    m2[123] = "123"
    m2[12.3] = "123"
    fmt.Println(m2) // map[123:123 12.3:123]

    // m3 数组
    a3 := [3]int{1, 2, 3}
    var m3 map[[3]int]string
    m3 = make(map[[3]int]string)
    m3[a3] = "m2"
    fmt.Println(m3) // map[[1 2 3]:m2]

    // m4 可以,book1里面的元素都是支持== != struct
    type book1 struct {
        name string
    }
    var m4 map[book1]string
    fmt.Println(m4) // 输出: map[]

}
复制代码

 

2.map查找

v,ok :=m5["a"] //ok为bool值
if ok {
    fmt.Println(v)
}        

 

3.增加,修改

//增加修改
m6 := map[string]string{
    "a": "va",
    "b": "vb",
}
m6["c"] = "11" //若key存在则是修改,不在则是增加
fmt.Println(m6)

 

 4.删除

 

m7 := map[string]string{
    "a": "va",
    "b": "vb",
}
delete(m7, "x")   // 删除不存在的key,原m不影响
delete(m7, "a")   // 删除存在的key
fmt.Println(m7)

 

5.遍历元素

m8 := map[string]string{
    "a": "va",
    "b": "vb",
}
for k, v := range m8 {
    fmt.Printf("k:[%v].v:[%v]\n", k, v) // 输出k,v值
}

 

6.获取字典个数

//获取个数
m9 := map[string]string{
    "a": "va",
    "b": "vb",
}
fmt.Println(len(m9))

 

posted on   星河赵  阅读(830)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示