go语言(八)---- map

  1. map的声明方式有以下三种。
go 复制代码
package main

import "fmt"

func main() {
	//第一种声明方式

	//声明map1是一个map类型,key是String,value是String
	var myMap1 map[string] string
	if myMap1 == nil {
		fmt.Println("myMap1 是一个空map")
	}

	//在使用map前,需要先用make给map分配数据空间
	myMap1 = make(map[string]string,10)

	myMap1["one"] = "java"
	myMap1["two"] = "c"
	myMap1["three"] = "python"
	fmt.Println("第一种方式", myMap1)

	//第二种声明方式
	myMap2 := make(map[int]string)
	myMap2[1] = "navy"
	myMap2[2] = "hj"
	myMap2[3] = "liu"

	fmt.Println("第二种方式", myMap2)

	//第三种声明方式
	myMap3 := map[string] string{
		"one": "php",
		"two": "c++",
		"three": "python",
	}
	fmt.Println("第三种方式", myMap3)
}
  1. map的使用方式

map的增删改查

go 复制代码
package main

import "fmt"

func main() {
	cityMap :=make(map[string]string)

	//添加
	cityMap["China"] = "Beijing"
	cityMap["Japan"] = "Tokyo"
	cityMap["USA"] = "NewYork"

	//遍历
	for key,value := range cityMap  {
		fmt.Println("key = ",key)
		fmt.Println("value = ",value)
	}

	//删除
	delete(cityMap,"Japan")

	//修改
	cityMap["USA"] = "DC"

	fmt.Println("-------------")

	//遍历
	for key, value := range cityMap {
		fmt.Println("key = ",key)
		fmt.Println("value = ",value)
	}
}
  1. map的传参
go 复制代码
package main

import (
	"fmt"
)

func printMap(cityMap map[string]string) {
	//cityMap 是一个引用传递
	for key, value := range cityMap{
		fmt.Println("key = ",key)
		fmt.Println("value = ",value)
	}
}

func changeValue(cityMap map[string] string)  {
	cityMap["England"] = "Lodndon"
}


func main() {
	cityMap := make(map[string]string)

	//添加
	cityMap["China"] = "Beijing"
	cityMap["Japan"] = "Tokyo"
	cityMap["USA"] = "NewYork"

	//遍历
	printMap(cityMap)

	//增加一个map
	changeValue(cityMap)

	fmt.Println("---------------")
	//遍历
	printMap(cityMap)

}
相关推荐
心平气和量大福大11 分钟前
C#-WPF-Window主窗体
开发语言·c#·wpf
从零开始的代码生活_1 小时前
C++ 继承详解:访问控制、对象模型、菱形继承与设计取舍
开发语言·c++·后端·学习·算法
云小逸2 小时前
【C++ 第七阶段:模板、泛型编程与工程综合详解】
开发语言·c++
GIS阵地2 小时前
QgsSingleBandPseudoColorRenderer 完整详解(QGIS 3.40.13 C++)
开发语言·前端·c++·qt·qgis
爱笑鱼2 小时前
Binder(二):AIDL 生成的 Proxy、Stub 和 Parcel 到底在做什么?
android
yaoxin5211233 小时前
470. Java 反射 - Member 接口与 AccessFlag
java·开发语言·python
groundhappy3 小时前
idalib安装和codex ida-mcp配置
linux·开发语言·python
爱笑鱼3 小时前
Binder(一):一次方法调用,究竟怎样跨进程执行?
android
小钻风33664 小时前
Spring Boot 文件上传详解:深入理解 MultipartFile 的使用与原理
java·开发语言
壮哥_icon4 小时前
【Android 系统开发】使用 BAT 脚本高效自动化管理 /system/priv-app/ 系统应用(安装与卸载)
android·运维·自动化