• Go map基础


     1 package main
     2 
     3 import "fmt"
     4 
     5 //Map
     6 //创建:make(map[string]int)
     7 //获取元素: m[key]
     8 //key不存在时,获得value类型的初始值
     9 //用value, ok:= m[key]来判断是否存在key
    10 //delete删除元素
    11 //用range遍历key,或者遍历key,value对
    12 //不保证遍历顺序,如需顺序,需手动对key排序
    13 //用len获得元素个数
    14 //map使用哈希表,必须可以比较相等
    15 //除了slice, map, function的内建类型都可以作为key
    16 //struct类型不包含上述字段也可以作为key
    17 
    18 func main() {
    19     //创建map
    20     m := map[string] string {
    21         "name": "ccmouse" ,
    22         "course": "golang",
    23         "site": "imooc",
    24         "quality": "notbad",
    25     }
    26     fmt.Println(m) //map[course:golang site:imooc quality:notbad name:ccmouse]
    27 
    28     m2 := make( map[string]int)
    29     fmt.Println(m2)  //map[]  m2 == empty map
    30 
    31     var m3 map[string]int
    32     fmt.Println(m3)  //map[]  m3 == nil
    33 
    34     //map的遍历
    35     for k, v := range m{
    36         fmt.Println(k, v)   //name ccmouse //hash map输出无序
    37                             //course golang
    38                             //site imooc
    39                             //quality notbad
    40     }
    41 
    42     //map取值
    43     courseName, ok := m["course"]
    44     fmt.Println(courseName, ok)  //golang true
    45 
    46     if causeName, ok:= m["cause"]; ok{  //判断值存不存在
    47         fmt.Println(causeName)
    48     }else{
    49         fmt.Println("Key does not exist")   //Key does not exist
    50     }
    51 
    52     //删除元素
    53     name, ok := m["name"]
    54     fmt.Println(name, ok)  //ccmouse true
    55     delete(m, "name")
    56     name, ok = m["name"]
    57     fmt.Println(name, ok)  // false
    58 }
  • 相关阅读:
    web工程导入新环境的注意事项
    Mysql group by,order by,dinstict优化
    Dijkstra and Floyd算法
    百度面试题
    腾讯面试题
    百度笔试3
    百度笔试2
    百度笔试1
    百度2011实习生招聘笔试题
    百度2011.10.16校园招聘会笔试题
  • 原文地址:https://www.cnblogs.com/yuxiaoba/p/9345955.html
走看看 - 开发者的网上家园