go语言map类型,及增删改查方法
据说,go语言的map类型的设计灵感来源于python的字典dict,是不是真的,不得而知,不过,go原因的map类型数据同python的字典dict确实非常相似,其序列也是采用键值对的形式存储数据。
map类型的定义方式
var m map[ KeyType ] ValueType
map类型的声明实例
package main
import "fmt"
func main() {
var m0 map[string]string = map[string]string{
"域名": "x1y1z1.com",
"名称": "大器编程",
"信念": "璞玉天成,大器晚成",
}
fmt.Printf("m0的数据类型为%T,值为%v", m0, m0)
}
代码输出:
m0的数据类型为map[string]string,值为map[信念:璞玉天成,大器晚成 名称:大器编程 域名:x1y1z1.com]
代码解析
- 如上代码,map类型的数据的初始化可以用key : value的形式,注意,要用英文的逗号“,”隔开。
- 从上面的代码输出,我们可以看出,map的元素是无序的。
map类型元素的增删改查
和python的字典dict的键值对一样,go语言map类型的数据也是采用键的形式来访问、查找、修改及删除元素的,具体实例如下:
增删改查实例
func main() {
m1 := make(map[string]int) //这是声明创建map的另一种方式
fmt.Printf("m1的数据类型为%T,值为%v \n", m1, m1)
//此时m1的值为map[],空值,接下来,我们为m1添加元素
m1["小明"] = 18
m1["小花"] = 18
fmt.Printf("m1的数据类型为%T,值为%v \n", m1, m1)
//接下来,我们来修改元素,注意,只能修改值,而不能修改键,否则会添加元素
m1["小明"] = 19
fmt.Printf("m1的数据类型为%T,值为%v \n", m1, m1)
//接下来删除元素,用delete()方法
delete(m1, "小明")
fmt.Printf("m1的数据类型为%T,值为%v \n", m1, m1)
}
代码输出:
m1的数据类型为map[string]int,值为map[]
m1的数据类型为map[string]int,值为map[小明:18 小花:18]
m1的数据类型为map[string]int,值为map[小明:19 小花:18]
m1的数据类型为map[string]int,值为map[小花:18]