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] 

全栈后端 / go语法 :













Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.