3.10 go map

/*
 map键值对的集合;键是唯一的;键值对无序的
*/
package main

import "fmt"

func main() {
	//01 定义 map[类型1]类型2   类型1不能为指针类型 可以为&类型
	var m1 map[int]string //声明变量
	fmt.Println("m1=", m1)
	m1 = map[int]string{1: "1", 2: "2"} //初始化
	fmt.Println("m1=", m1)

	m2 := make(map[int]string) //声明并初始化值
	m2[1] = "1"
	fmt.Println("m2=", m2)

	m3 := make(map[int]string, 2) //指定容量
	m3[1] = "333"
	fmt.Println("m3=", m3)

	//02 map 的遍历
	m4 := map[int]string{1: "1", 2: "2", 3: "3"}
	for key, data := range m4 {
		fmt.Printf("key=%d,val=%s\n", key, data)
	}
	//03 判断map中,某个key 是否存在
	val, ok := m4[1] //val 为key对应的返回值,ok 表示此key是否存在
	fmt.Printf("val=%v,ok=%v\n", val, ok)

	//04 map的删除
	fmt.Println("删除前m4=", m4)
	delete(m4, 1)
	fmt.Println("删除后m4=", m4)

	//05 map 作为参数传递时是引用传递
	fmt.Println("传参前=", m4)
	test(m4)
	fmt.Println("传参后=", m4)

}
func test(m map[int]string) {
	m[2] = "test!!!!!!!"
}
发布了124 篇原创文章 · 获赞 94 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/h4241778/article/details/105306440
今日推荐