一个例子学懂go语言之Map的介绍与使用

map是go语句内建的关联数据类型(在其他编程语言也叫hash或者dicts)

例子

package main

import "fmt"

func main() {
    m := make(map[string]int)

    m["k1"] = 7
    m["k2"] = 13

    fmt.Println("map:", m)

    v1 := m["k1"]
    fmt.Println("v1: ", v1)

    fmt.Println("len:", len(m))

    delete(m, "k2")
    fmt.Println("map:", m)

    _, prs := m["k2"]
    fmt.Println("prs:", prs)

    n := map[string]int{"foo": 1, "bar": 2}
    fmt.Println("map:", n)
}

代码解析

m := make(map[string]int)

可以使用内建方法make创建map,对应的语法为`make(map[键的类型]值的类型)

m["k1"] = 7
m["k2"] = 13

设置键值对可以使用map变量[键] = 值

fmt.Println("map:", m)

fmt.Println打印map会把所有的键值对都打印

v1 := m["k1"]
fmt.Println("v1: ", v1)

获取一个键对应的值可以用map变量名[键]

fmt.Println("len:", len(m))

使用内建方法len可以返回map中的键值对个数

delete(m, "k2")
fmt.Println("map:", m)

使用内建方法delete可以删除map中的键值对

_, prs := m["k2"]
fmt.Println("prs:", prs)

用键来获取除了可以返回一个值还可以返回一个布尔值,如果值零值(像是0或者"")则返回false其他则返回true,这里我们只测试第二个布尔值,所以使用_来省略返回过来的值

n := map[string]int{"foo": 1, "bar": 2}
fmt.Println("map:", n)

你也可以在定义时候直接赋值

运行结果

$ go run maps.go 
map: map[k1:7 k2:13]
v1:  7
len: 2
map: map[k1:7]
prs: false
map: map[bar:2 foo:1]

注意:map在打印时为map[k:v k:v]的形式

你可能感兴趣的:(一个例子学懂go语言之Map的介绍与使用)