栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Go语言学习-- No.9 内置容器(数组、切片和映射)------映射

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Go语言学习-- No.9 内置容器(数组、切片和映射)------映射

映射
  • 映射是什么?
  • 声明格式
  • 声明空映射并使用 make 函数完成初始化设置
  • 遍历映射
  • 使用 delete 删除映射中的 键值对
  • 映射总结

映射是什么?

映射(map)是一种无序的键值对的集合,map的键类似于索引,指向数据的值。其返回的结果类似于 python中的字典 。 功能性也和python中的 map() 函数类似,是完成对变量的另一种表述 。

声明格式
变量名 := map [键类型]值类型{key : value, ...} 
或者
var 变量名 map [键类型]值类型{key : value, ...} 

举例:

package main

import "fmt"

func main() {
	var country = map[string]int{
		"china": 1,
		"usa":   2,
		"eng":   3,
	}
	fmt.Println(country)
}

// map[china:1 eng:3 usa:2]

我们可以看出,映射的量会自动对其进行排序操作。那如何去掉这种排序呢?

声明空映射并使用 make 函数完成初始化设置
var 变量名 map [键类型]值类型
变量名 = make(map[键类型]值类型)
变量名[key1] = value1
变量名[key2] = value2
变量名[key3] = value3

举例:

package main

import "fmt"

func main() {
	var ssm map[string]int
	ssm = make(map[string]int)
	ssm["Tom"] = 10
	ssm["addon"] = 30
	ssm["go"] = 20
	fmt.Println("map长度为: ", len(ssm))
	fmt.Println(ssm)
}

// map长度为:  3
// map[Tom:10 addon:30 go:20]

遍历映射

使用for range 遍历映射

package main

import "fmt"

func main() {
	var ssm map[string]int
	ssm = make(map[string]int)
	ssm["Tom"] = 10
	ssm["addon"] = 30
	ssm["go"] = 20
	fmt.Println("map长度为: ", len(ssm))
	fmt.Println(ssm)

	for k, v := range ssm {
		fmt.Println(k, v)
	}
}

// map长度为:  3
// map[Tom:10 addon:30 go:20]
// Tom 10
// addon 30
// go 20

如果只想遍历键:

package main

import "fmt"

func main() {
	var ssm map[string]int
	ssm = make(map[string]int)
	ssm["Tom"] = 10
	ssm["addon"] = 30
	ssm["go"] = 20

	for k := range ssm {
		fmt.Println(k)
	}
}

// Tom
// addon
// go

如果只想遍历值 :就使用 占位符 _ 将 key隐去,只设置 value即可 。

package main

import "fmt"

func main() {
	var ssm map[string]int
	ssm = make(map[string]int)
	ssm["Tom"] = 10
	ssm["addon"] = 30
	ssm["go"] = 20

	for _, v := range ssm {
		fmt.Println(v)
	}
}

// 10
// 30
// 20

使用 delete 删除映射中的 键值对

使用格式 :

delete(map,键)

举例:

package main

import "fmt"

func main() {
	var ssm map[string]int
	ssm = make(map[string]int)
	ssm["Tom"] = 10
	ssm["addon"] = 30
	ssm["go"] = 20

	delete(ssm, "Tom")
	fmt.Println(ssm)
}
// map[addon:30 go:20]

Go语言没有为map提供清空所有元素的方法,想要清空map的唯一方法就是重新定义一个新的map

映射总结

映射是一种无序的键值对的集合,当程序中需要存放有关联关系的数据时,往往就会用到map。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/694011.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号