Go Map的使用
Go语言的map使用起来简单且高效。是常用的数据结构。
1、初始化
map[k]v,k是其键,v是其值。
//初始化key为string类型,val为int类型
a := make(map[string]int)
b := map[string]int{
"fht": 1,
"fyq": 2,
"zcx": 3,
}
c := map[string]int{}
//赋值
a["a"] = 1
b["b"] = 2
c["c"] = 3
2、增删改查
需要注意在查询时如果map中没有该键值则会默认返回其对应数据类型的零值。
package main
import (
"fmt"
)
func main() {
a := make(map[string]int)
b := map[string]int{
"fht": 1,
"fyq": 2,
"zcx": 3,
}
c := map[string]int{}
a["a"] = 1
b["b"] = 2
c["c"] = 3
//delete 函数
delete(b, "fht")
fmt.Println(b)
//返回0,并且重新赋值
b["fht"] += 2
fmt.Println(b)
//常用查找方式
if age, flg := b["fht"]; flg {
fmt.Printf("fht is %d\n", age)
}
}
// 输出
// map[b:2 fyq:2 zcx:3]
// map[b:2 fht:2 fyq:2 zcx:3]
// fht is 2
3、使用map构建集合类型
Go中没有集合类型,但是可以通过map构造一个集合(Java的集合底层也是由map实现的),map[k]bool
package main
import (
"fmt"
)
func main() {
vest := make(map[string]bool)
vest["fht"] = true
vest["SB"] = true
key := "okk"
if !vest[key] {
fmt.Println("No this one")
vest[key] = true
} else {
fmt.Println("already exist")
}
fmt.Println(vest)
}
// 输出
// No this one
// map[SB:true fht:true okk:true]