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)

}
相关推荐
呆萌很2 小时前
【GO】结构体构造函数练习题
golang
SharpCJ4 小时前
Android 开发者为什么必须掌握 AI 能力?端侧视角下的技术变革
android·ai·aigc
lly2024064 小时前
C 标准库 - `<stdio.h>`
开发语言
沫璃染墨4 小时前
C++ string 从入门到精通:构造、迭代器、容量接口全解析
c语言·开发语言·c++
jwn9994 小时前
Laravel6.x核心特性全解析
开发语言·php·laravel
迷藏4944 小时前
**发散创新:基于Rust实现的开源合规权限管理框架设计与实践**在现代软件架构中,**权限控制(RBAC)** 已成为保障
java·开发语言·python·rust·开源
功德+n4 小时前
Linux下安装与配置Docker完整详细步骤
linux·运维·服务器·开发语言·docker·centos
明日清晨4 小时前
python扫码登录dy
开发语言·python
_李小白4 小时前
【OSG学习笔记】Day 38: TextureVisitor(纹理访问器)
android·笔记·学习
我是唐青枫4 小时前
C#.NET gRPC 深入解析:Proto 定义、流式调用与服务间通信取舍
开发语言·c#·.net