GO语言基础之map的使用

博客介绍了Go语言中map这一内置数据结构,它是无序的key - value对集合,属于引用类型。还提到使用注意事项,如键需唯一,切片等类型不能作键,且map无序,每次打印结果顺序可能不同,最后给出实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

go语言基础之map
1、map介绍
    Go语言中的map(映射、字典)是一种内置的数据结构,它是一个无序的key—value对的集合,比如以身份证号作为唯一键来标识一个人的信息,属于引用类型。 


2、使用注意事项
(1)在一个map里所有的键都是唯一的,切片、函数以及包含切片的结构类型这些类型,不能作为映射的键,使用这些类型会造成编译错误。
(2)map是无序的,我们无法决定它的返回顺序,所以,每次打印结果的顺利有可能不同。

 3、实例

package main
import (
	"fmt"
)
func modify(map1 map[int]int) {
	map1[10] = 900
}

//定义一个学生结构体
type Stu struct {
	Name string
	Age int
	Address string
}

func main() {

	//map是引用类型,遵守引用类型传递的机制,在一个函数接收map,
	//修改后,会直接修改原来的map

	map1 := make(map[int]int, 2)
	map1[1] = 90
	map1[2] = 88
	map1[10] = 1
	map1[20] = 2
	modify(map1)
	// 看看结果, map1[10] = 900 ,说明map是引用类型
	fmt.Println(map1) 


	//map的value 也经常使用struct 类型,
	//更适合管理复杂的数据(比前面value是一个map更好),
	//比如value为 Student结构体 【案例演示,因为还没有学结构体,体验一下即可】
	//1.map 的 key 为 学生的学号,是唯一的
	//2.map 的 value为结构体,包含学生的 名字,年龄, 地址

	students := make(map[string]Stu, 10)
	//创建2个学生
	stu1 := Stu{"tom", 18, "北京"}
	stu2 := Stu{"mary", 28, "上海"}
	students["no1"] = stu1
	students["no2"] = stu2

	fmt.Println(students)

	//遍历各个学生信息
	for k, v := range students {
		fmt.Printf("学生的编号是%v \n", k)
		fmt.Printf("学生的名字是%v \n", v.Name)
		fmt.Printf("学生的年龄是%v \n", v.Age)
		fmt.Printf("学生的地址是%v \n", v.Address)
		fmt.Println()
	}

}

输出结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值