goland的map操作-创建map遍历map获取map编辑map删除map

map的操作

goland的map操作-创建map遍历map获取map编辑map删除map

map key的使用注意事项

goland的map操作-创建map遍历map获取map编辑map删除map

map演示带详细注解

package main

import "fmt"

func main() {
    m := map[string]string{
        "name":    "xingchen",
        "course":  "goland",
        "site":    "www.z88j.com",
        "quality": "notbad",
    }
    m2 := make(map[string]int) //另一种定义map的方法 m2 ==empty map
    var m3 map[string]int      // m3 == nil
    fmt.Println(m, m2, m3)

    fmt.Println("map 遍历")
    //遍历map map遍历是无序的是一个哈希map。无序你运行几次就会发现for 里面println打印的顺序会和前几次运行打印顺序不一致。
    //如果想要排序就要手动进行map排序,可以吧map加到slice里面,然后slice可以排序,然后再进遍历这个map
    for k, v := range m {
        fmt.Println(k, v)
    }
    fmt.Println("获取 map 值")
    courseName := m["course"]
    fmt.Println(courseName)
    //如果取不存在的map 值 就会返回初始值,string初始值是空字符串 go不会进行报错,ok这个参数判断是否存在这个key false 是不存在
    if couName, ok := m["cou"]; ok {
        fmt.Println(couName, ok)
    } else {
        fmt.Println("key 不存在")
    }
    fmt.Println("删除 map 元素")
    name, ok := m["name"]
    fmt.Println(name, ok)
    //map删除
    delete(m, "name")
    //注意:上面能用:= 是因为 name 这个没进行声明。下面name和ok变量已经声明过了。就不能用:= 只能用= 不然就会报错
    name, ok = m["name"]
    fmt.Println(name, ok)
    fmt.Println("编辑map值")
    m["name"] = "yaoyuan"
    fmt.Println(m["name"])
    //map是使用哈希表进行实现的,所以必须可以进行比较相等。
    //除了 slice, map function 的内建类型都可以作为key
    //struct结构体类型 也可以作为key。不过前提是 不能包含 slice, map function  内建类型。编译时候编译器会进行检查。不然编译会不通过。
}

下面是输出结果

GOROOT=/usr/local/Cellar/go/1.16.4/libexec #gosetup
GOPATH=/Users/yaoyuan/go #gosetup
/usr/local/Cellar/go/1.16.4/libexec/bin/go build -o /private/var/folders/3d/546h4f6n3tndn21mdhq3kpnr0000gn/T/___go_build_imooc_com_ccmouse_learngo__4_ /Users/yaoyuan/IdeaProjects/learngo/maps.go #gosetup
/private/var/folders/3d/546h4f6n3tndn21mdhq3kpnr0000gn/T/___go_build_imooc_com_ccmouse_learngo__4_
map[course:goland name:xingchen quality:notbad site:www.z88j.com] map[] map[]
map 遍历
name xingchen
course goland
site www.z88j.com
quality notbad
获取 map 值
goland
key 不存在
删除 map 元素
xingchen true
 false
编辑map值
yaoyuan

Process finished with the exit code 0

goland的map操作-创建map遍历map获取map编辑map删除map

原创文章,作者:星辰,如若转载,请注明出处:http://www.z88j.com/313.html

(28)
打赏 微信扫一扫 微信扫一扫
上一篇 2021年6月16日 下午9:18
下一篇 2021年6月17日 下午4:53

相关推荐

发表回复

登录后才能评论