Golang 使用struct作为map键
在Golang中, map 是一组无序的键值对集合。它被广泛使用,因为它提供了快速的查找和可以通过键检索,更新或删除的值。
语法:
例如:var sample map[string]int
这里的sample是一个map,它的键是字符串,值的类型为整数。
在maps中,大多数数据类型都可以用作键,如int、string、float64、rune等。Maps还允许使用struct作为键。这些struct应该彼此比较。Golang中的结构体或 struct 是允许将不同类型的字段组合成单一类型的用户定义类型。
结构体示例:
让我们看看如何在map中实现struct:
示例1:
输出:
遍历一个map: 您还可以运行循环以单独访问和操作每个map键。
示例2:
输出:
在map中添加键值对: 在map中添加键值对使用以下语法:
如果在map中已经存在一个键值对,它将使用新的键值对更新旧的键值对。
示例3:
输出:
原始map是 map[{Aishwarya 1 ECE}:2 {Asha 1 CSE}:1]
在map中添加键值对后,更新的map是: map[{Aishwarya 1 ECE}:2 {Asha 1 CSE}:1 {Priya 2 MECH}:3 {Ram 3 CSE}:4 {Tina 44 EEE}:1]
从map中删除一个结构体键: 你可以使用delete()函数从map中删除一个结构体键。它是一个内置函数,不返回任何值,如果给定的map中不存在键,则不执行任何操作。其语法如下:
示例4:
输出:
检查键值对的存在性: 你可以检查map中是否存在一个结构体。下面是检查map中是否存在struct_key:value的语法:
//这将给出值和检查结果
//如果检查结果为True,则表示该键存在
//如果检查结果为False,则表示该键缺失,在这种情况下,值采用零值
value, check_variable_name:= map_name[key]或
//不使用值,只使用空标识符
//它只会给出检查结果
_, check_variable_name:= map_name[key]
示例6:
输出: