• 技术文章 >后端开发 >Golang

    golang的hashmap怎么扩容

    (*-*)浩(*-*)浩2019-12-28 09:52:00原创1339

    定义hashmap变量

    由于go语言是一个强类型的语言,因此hashmap也是有类型的,具体体现在key和value都必须指定类型,比如声明一个key为string,value也是string的map,需要这样做 (推荐学习:go

    var m map[string]string // 声明一个hashmap,还不能直接使用,必须使用make来初始化
    m = make(map[string]string) // 初始化一个map
    m = make(map[string]string, 3) // 初始化一个map并附带一个可选的初始bucket(非准确值,只是有提示意义)
    
    m := map[string]string{} // 声明并初始化
    
    m := make(map[string]string) // 使用make来初始化

    get,set,delete

    m := map[string]int
    m["a"] = 1
    fmt.Println(m["a"]) // 输出 1
    // 如果访问一个不存在的key,返回类型默认值
    fmt.Println(m["b"]) // 输出0
    // 测试key是否存在
    v, ok := m["b"]
    if ok {
        ...
    }
    // 删除一个key
    delete(m, "a")
    迭代器
    // 只迭代key
    for k := range m {
        ...
    }
    // 同时迭代key-value
    for k, v := range m {
        ...
    }

    在迭代的过程中是可以对map进行删除和更新操作的,规则如下:

    迭代是无序的,跟插入是的顺序无关

    迭代的过程中删除一个key,无论遍历还是没有遍历过都不会再遍历到

    迭代的过程中添加一个key,不确定是否能遍历到

    未初始化的map也可以迭代

    其他

    map的value是不可取地址的,意味着 &m["a"]这样的语法是非法的

    len和cap分别可以获取当前map的kv个数和总容量

    以上就是golang的hashmap怎么扩容的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:golang
    上一篇:golang到底能做什么 下一篇:golang的slice如何去重
    PHP编程就业班

    相关文章推荐

    • golang如何获取当前时间的前几天• golang怎么截获错误• golang语言可以做些什么• golang编程语言能开发啥

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网