Go 中的 map 是一种键值对集合,类似于其他语言中的哈希表或字典。以下是一些常见的 Go map 用法和示例:
创建和初始化 map:
package main
import "fmt"
func main() {
// 声明并初始化 map
var m1 map[string]int // 声明一个空 map
m2 := make(map[string]int) // 使用 make 函数创建空 map
m3 := map[string]int{"a": 1, "b": 2} // 使用字面值初始化 map
fmt.Println("m1:", m1) // 输出 m1: map[]
fmt.Println("m2:", m2) // 输出 m2: map[]
fmt.Println("m3:", m3) // 输出 m3: map[a:1 b:2]
}
插入和访问 map 元素:
package main
import "fmt"
func main() {
m := make(map[string]int)
// 插入元素到 map
m["a"] = 1
m["b"] = 2
// 访问 map 元素
fmt.Println("Value of key 'a':", m["a"]) // 输出 Value of key 'a': 1
fmt.Println("Value of key 'b':", m["b"]) // 输出 Value of key 'b': 2
}
检查 map 中是否存在某个键:
package main
import "fmt"
func main() {
m := map[string]int{"a": 1, "b": 2}
// 检查键是否存在
value, exists := m["a"]
if exists {
fmt.Println("Value of key 'a':", value)
} else {
fmt.Println("Key 'a' does not exist in the map.")
}
}
删除 map 中的键值对:
package main
import "fmt"
func main() {
m := map[string]int{"a": 1, "b": 2}
// 删除键值对
delete(m, "a")
fmt.Println("Map after deletion:", m) // 输出 Map after deletion: map[b:2]
}
迭代 map:
package main
import "fmt"
func main() {
m := map[string]int{"a": 1, "b": 2}
// 使用 range 关键字遍历 map
for key, value := range m {
fmt.Printf("Key: %s, Value: %d\n", key, value)
}
}
这些是 Go map 的一些常见用法和示例。map 是 Go 中非常实用的数据结构,可以用来存储和检索键值对,适用于许多场景,如配置管理、缓存和数据存储等。