Golang Map的使用

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]

你可能感兴趣的:(Golang基础知识,golang,开发语言,后端)