首页 > 其他 > 详细

golang的map

时间:2019-04-02 16:57:43      阅读:122      评论:0      收藏:0      [点我收藏+]

map--字典

map的基本使用:

package main

import "fmt"

// 先声明

type PersonInfo struct {
    id string
    name string
    addr string
}
func main()  {
    // map是一堆键值对的未排序集合,就像python中的字典一样
    var PersonDB map[string] PersonInfo
    PersonDB = make(map[string] PersonInfo)

    //往map中插入几条数据
    PersonDB["wualin"] = PersonInfo{"001","wualin","xinyu"}
    PersonDB["zhang"] = PersonInfo{"002","zhang","xiushui"}

    // 从map中取数据,查找关键字为"wualin"的数据
    person1 := PersonDB["wualin"]
    fmt.Println(person1)
    fmt.Println(person1.name) // 通过 . 取map中的数据

    person2,ok := PersonDB["zhang"]
    if ok{// ok是一个返回的bool类型,返回True则表示找到了对应的数据
        fmt.Println(person2)
    } else{
        fmt.Println("没有找到zhang...")
    }
}
  • 变量声明

map的声明基本上没有多余的元素,比如:

var PersonDB map[string] PersonInfo

PersonDB是map变量名,string是键的类型,PersionInfo则是其中存放值的类型

  • 创建:

使用go语言内置的函数make()来创建一个新map,例:

PersonDB = make(map[string] PersonInfo)

也可以选择是否在创建时置顶该map的初始存储能力,例:

PersonDB = make(map[string] PersonInfo,100)

创建并初始化map,例:

PersionDB = map[string] PersionInfo{
"1234":PersionInfo{"1","wualin","xinyu"}
    }
}
  • 元素赋值
PersonDB["wualin"] = PersonInfo{"001","wualin","xinyu"}
  • 元素删除

Go语言提供了一个内置函数delete(),用于删除容器内的元素

delete(PersionDB,"wualin")

如果键"wualin"不存在,那么这个调用将什么都不会发生

  • 元素查找

根据关键字从map取数据,例:

value,ok := PersionDB["wualin"]
if ok{ // 找到了
    // 处理找到的value
    }
    
}

使用ok可以快速检查是否找到数据,不需要去判断value是否为空

golang的map

原文:https://www.cnblogs.com/wualin/p/10643617.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!