首页后端开发GOgo的数据类型-复合数据类型-map(二)

go的数据类型-复合数据类型-map(二)

时间2023-04-26 12:48:01发布访客分类GO浏览519
导读:添加和修改元素在map中添加或修改元素的方法与数组和切片不同。可以使用下标来访问元素,如果该下标对应的键不存在,则将其添加到map中,否则将该下标对应的值修改为新值。下面是一个示例:// 创建一个空 map students := make...

添加和修改元素

map中添加或修改元素的方法与数组和切片不同。可以使用下标来访问元素,如果该下标对应的键不存在,则将其添加到map中,否则将该下标对应的值修改为新值。下面是一个示例:

// 创建一个空 map
students := make(map[string]int)

// 添加元素
students["Tom"] = 20
students["Alice"] = 19
students["Bob"] = 22

// 修改元素
students["Tom"] = 21

删除元素

使用delete函数可以从map中删除一个元素,函数的第一个参数是map本身,第二个参数是要删除的元素的键。

// 删除元素
delete(students, "Alice")

遍历元素

使用for循环可以遍历map中的所有元素。可以使用range关键字和一个循环变量来遍历map中的键值对。下面是一个示例:

// 遍历元素
for key, value := range students {

    fmt.Println(key, value)
}

判断元素是否存在

如果要判断一个元素是否存在于map中,可以使用一个布尔表达式来进行判断。下面是一个示例:

// 判断元素是否存在
age, ok := students["Alice"]
if ok {

    fmt.Println("Alice's age is", age)
}
 else {

    fmt.Println("Alice is not found")
}

使用make函数创建map

Go语言中,可以使用make函数来创建一个空的mapmake函数的第一个参数是map的类型,第二个参数是map的初始容量。如果不需要指定初始容量,可以省略第二个参数。

// 创建一个空 map
students := make(map[string]int)

// 创建一个带有初始容量的 map
grades := make(map[string]int, 100)

注意事项

需要注意的是,map是一个引用类型。当将一个map传递给函数或者赋值给一个新变量时,实际上是传递了指向原始map的指针。因此,当修改map中的元素时,所有引用该map的变量都会受到影响。

另外,由于map是一个引用类型,因此不能使用==运算符来比较两个map是否相等。如果要判断两个map是否相等,需要使用reflect包中的DeepEqual函数。

m1 := map[string]int{
"A": 1, "B": 2}

m2 := map[string]int{
"B": 2, "A": 1}

if reflect.DeepEqual(m1, m2) {

    fmt.Println("m1 and m2 are equal")
}
    

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

go

若转载请注明出处: go的数据类型-复合数据类型-map(二)
本文地址: https://pptw.com/jishu/9241.html
go的数据类型-复合数据类型-struct(二) go的数据类型-复合数据类型-map(一)

游客 回复需填写必要信息