Go语言映射
提示
- 创建和使用映射:映射(Map)是 Go 语言中的一种数据结构,用于存储键值对。键是唯一的,每个键都与一个值相关联。可以使用字面量语法或
make()
函数创建映射。 - 访问和修改映射:可以通过键来访问或修改映射中的值。使用
map[key]
语法可以获取或设置特定键的值。 - 映射的遍历和操作:可以使用
for range
循环遍历映射中的每个键值对。delete()
函数用于从映射中删除键值对,而append()
函数用于向映射中添加新元素。
在 Go 中,map 数据结构以键/值对的形式存储元素。这里,键是与地图上每个值相关联的唯一标识符。
在 Golang 中创建 map
创建 Go map 的语法是:
subjectMarks := map[string]float32{"Golang": 85, "Java": 80, "Python": 81}
此代码创建了一个名为 subjectMarks 的 map。这里,
[string]
- 表明 map 的键是字符串类型float32
- 表明 map 的值是浮点类型{Golang", "Java", "Python"}
- map 的键{85, 80, 81}
- map 的值
示例:Golang 中的 Map
// 程序用于创建一个 map 并打印其键和值
package main
import "fmt"
func main() {
// 创建一个 map
subjectMarks := map[string]float32{"Golang": 85, "Java": 80, "Python": 81}
fmt.Println(subjectMarks)
}
输出
map[Golang:85 Java:80 Python:81]
这里,我们创建了一个 map 并打印了 map 的键值对。
注意: 我们也可以使用 var
关键字创建 map。例如,
var subjectMarks = map[string]float32{"Golang": 85, "Java": 80, "Python": 81}
在 Golang 中访问 Map 的值
我们可以使用相应的键访问 map 的值。例如,
package main
import "fmt"
func main() {
// 创建一个 map
flowerColor := map[string]string{"Sunflower": "Yellow", "Jasmine": "White", "Hibiscus": "Red"}
// 访问键 Sunflower 的值
fmt.Println(flowerColor["Sunflower"]) // Yellow
// 访问键 Hibiscus 的值
fmt.Println(flowerColor["Hibiscus"]) // Red
}
这里,我们使用了表达式
flowerColor["Sunflower"]
来访问键Sunflower
的值flowerColor["Hibiscus"]
来访问键Hibiscus
的值
在 Golang 中更改 Map 的值
要更改 map 的值,我们可以直接将新值分配给相应的键。例如,
package main
import "fmt"
func main() {
// 创建一个 map
capital := map[string]string{ "Nepal": "Kathmandu", "US": "New York"}
fmt.Println("初始 Map: ", capital)
// 将 US 的值更改为 Washington DC
capital["US"] = "Washington DC"
fmt.Println("更新后的 Map: ", capital)
}
输出
初始 Map: map[Nepal: Kathmandu US: New York]
更新后的 Map: map[Nepal: Kathmandu US: Washington DC]
在上面的示例中,我们通过重新分配键 "US" 的新值 "Washington DC" 来更改 map 的值
添加 Go Map 元素
到目前为止,我们创建了一个带有预定义元素集的 map。然而,我们也可以向 map 中添加元素。
要添加元素,我们可以分配一个新值和一个新键。例如,
package main
import "fmt"
func main() {
// 创建一个 map
students := map[int]string{1: "John", 2: "Lily"}
fmt.Println("初始 Map: ", students)
// 使用键 3 添加元素
students[3] = "Robin"
// 使用键 5 添加元素
students[5] = "Julie"
fmt.Println("更新后的 Map: ", students)
}
输出
初始 Map: map[1:John 2:Lily]
更新后的 Map: map[1:John 2:Lily 3:Robin 5:Julie]
这里,代码
students[3] = "Robin"
- 使用键 3 和值Robin
添加了一个新元素students[5] = "Julie"
- 使用键 5 和值Julie
添加了一个新元素
删除 Go Map 元素
要删除 map 的元素,我们可以使用 delete()
函数。例如,
package main
import "fmt"
func main() {
// 创建一个 map
personAge := map[string]int{"Hermione": 21, "Harry": 20, "John": 25}
fmt.Println("初始 Map: ", personAge)
// 删除键为 John 的 map 元素
delete(personAge, "John")
fmt.Println("更新后的 Map: ", personAge)
}
输出
初始 Map: map[Harry:20 Hermione:21 John:25]
更新后的 Map: map[Harry:20 Hermione:21]
这里,我们使用了 delete()
函数删除了由键 "John" 表示的元素。
delete(personAge, "John")
该函数接受两个参数:
personAge
- map 的名称John
- 要删除的元素的键
注意: 如果传递给 delete()
函数的键在 map 中不存在,该函数将不执行任何操作。