- 映射是什么?
- 声明格式
- 声明空映射并使用 make 函数完成初始化设置
- 遍历映射
- 使用 delete 删除映射中的 键值对
- 映射总结
映射(map)是一种无序的键值对的集合,map的键类似于索引,指向数据的值。其返回的结果类似于 python中的字典 。 功能性也和python中的 map() 函数类似,是完成对变量的另一种表述 。
声明格式变量名 := map [键类型]值类型{key : value, ...}
或者
var 变量名 map [键类型]值类型{key : value, ...}
举例:
package main
import "fmt"
func main() {
var country = map[string]int{
"china": 1,
"usa": 2,
"eng": 3,
}
fmt.Println(country)
}
// map[china:1 eng:3 usa:2]
我们可以看出,映射的量会自动对其进行排序操作。那如何去掉这种排序呢?
声明空映射并使用 make 函数完成初始化设置var 变量名 map [键类型]值类型 变量名 = make(map[键类型]值类型) 变量名[key1] = value1 变量名[key2] = value2 变量名[key3] = value3
举例:
package main
import "fmt"
func main() {
var ssm map[string]int
ssm = make(map[string]int)
ssm["Tom"] = 10
ssm["addon"] = 30
ssm["go"] = 20
fmt.Println("map长度为: ", len(ssm))
fmt.Println(ssm)
}
// map长度为: 3
// map[Tom:10 addon:30 go:20]
遍历映射
使用for range 遍历映射
package main
import "fmt"
func main() {
var ssm map[string]int
ssm = make(map[string]int)
ssm["Tom"] = 10
ssm["addon"] = 30
ssm["go"] = 20
fmt.Println("map长度为: ", len(ssm))
fmt.Println(ssm)
for k, v := range ssm {
fmt.Println(k, v)
}
}
// map长度为: 3
// map[Tom:10 addon:30 go:20]
// Tom 10
// addon 30
// go 20
如果只想遍历键:
package main
import "fmt"
func main() {
var ssm map[string]int
ssm = make(map[string]int)
ssm["Tom"] = 10
ssm["addon"] = 30
ssm["go"] = 20
for k := range ssm {
fmt.Println(k)
}
}
// Tom
// addon
// go
如果只想遍历值 :就使用 占位符 _ 将 key隐去,只设置 value即可 。
package main
import "fmt"
func main() {
var ssm map[string]int
ssm = make(map[string]int)
ssm["Tom"] = 10
ssm["addon"] = 30
ssm["go"] = 20
for _, v := range ssm {
fmt.Println(v)
}
}
// 10
// 30
// 20
使用 delete 删除映射中的 键值对
使用格式 :
delete(map,键)
举例:
package main
import "fmt"
func main() {
var ssm map[string]int
ssm = make(map[string]int)
ssm["Tom"] = 10
ssm["addon"] = 30
ssm["go"] = 20
delete(ssm, "Tom")
fmt.Println(ssm)
}
// map[addon:30 go:20]
Go语言没有为map提供清空所有元素的方法,想要清空map的唯一方法就是重新定义一个新的map
映射总结映射是一种无序的键值对的集合,当程序中需要存放有关联关系的数据时,往往就会用到map。



