go 语言学习笔记⑦----映射(map)

go 语言学习笔记⑦----映射(map),第1张

go 语言学习笔记⑦----映射(map)

文章目录

go 语言学习笔记⑦----映射(map)

使用make赋值遍历是否存在删除做函数参数

go 语言学习笔记⑦----映射(map)

键值对,映射(类c++中的map )
map[keyType]valueType
keyType 不可以是切片了, 函数以及包含切片的结构类型
eg mp := map[int]string{}
无序存储

使用

只有len没有cap

package main

import (
	"fmt"
)

func main() {
	mp := map[int]string{}
	mp[1] = "111"
	fmt.Println(mp[1])
	//111
	mp[2] = "222"
	fmt.Println(len(mp))
	//2
}

make

通过make创建mp := make(map[int]string)
制定长度(容量)里面无数据mp := make(map[int]string, 2)

赋值

如果key已经存在, 修改对应value
如果key不存在, 创建key值为value
自动扩容

遍历

for key , value := range map {

}
range第一个返回的是键 , 第二个是值

package main

import (
	"fmt"
)

func main() {
	mp := map[int]string{1: "111", 2: "222"}
	for key, value := range mp {
		fmt.Println(key, value)
	}
}
是否存在

value , ok = mp[1]
第一个是value第二个是boolean

package main

import (
	"fmt"
)

func main() {
	mp := map[int]string{1: "111", 2: "222"}
	value, ok := mp[1]
	fmt.Println(value, ok)
	//111 true
	value, ok = mp[4]
	fmt.Println(value, ok)
	// false

}

删除

delete(变量名, 值)

package main

import (
	"fmt"
)

func main() {
	mp := map[int]string{1: "111", 2: "222"}
	fmt.Println(len(mp))
	//2
	delete(mp, 1)
	fmt.Println(len(mp))
	//1

}

做函数参数
package main

import (
	"fmt"
)

func deleteMap(m map[int]string) {
	delete(m, 1)
}

func main() {
	mp := map[int]string{1: "111", 2: "222"}
	fmt.Println(len(mp))
	//2
	deleteMap(mp)
	fmt.Println(len(mp))
	//1
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5703549.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存