golang map多层嵌套使用及遍历方法汇总
原文:https://blog.csdn.net/boyhandsome7/article/details/79734847
-----------------------------------------------------
package main
import (
"fmt"
)
func main() {
//多维map的声明与实现方法
//方法1 初始化一个空的多维映射
mainMapA := map[string]map[string]string{}
subMapA := map[string]string{"A_Key_1": "A_SubValue_1", "A_Key_2": "A_SubValue_2"}
mainMapA["MapA"] = subMapA
fmt.Println("MultityMapA")
for keyA, valA := range mainMapA {
for subKeyA, subValA := range valA {
fmt.Printf("mapName=%s Key=%s Value=%s\n", keyA, subKeyA, subValA)
}
}
//方法2 使用make声明一个多维映射(等同一般声明)
//var mainMap map[string]map[string]string
mainMapB := make(map[string]map[string]string)
//内部容器必须再次初始化才能使用
subMapB := make(map[string]string)
subMapB["B_Key_1"] = "B_SubValue_1"
subMapB["B_Key_2"] = "B_SubValue_2"
mainMapB["MapB"] = subMapB
fmt.Println("\nMultityMapB")
for keyB, valB := range mainMapB {
for subKeyB, subValB := range valB {
fmt.Printf("mapName=%s Key=%s Value=%s\n", keyB, subKeyB, subValB)
}
}
/* 方法3 使用interface{}初始化一个一维映射
* 关键点:interface{} 可以代表任意类型
* 原理知识点:interface{} 就是一个空接口,所有类型都实现了这个接口,所以它可以代表所有类型
*/
//mainMapC := make(map[string]interface{})
mainMapC := map[string]interface{}{}
subMapC := make(map[string]string)
subMapC["C_Key_1"] = "C_SubValue_1"
subMapC["C_Key_2"] = "C_SubValue_2"
mainMapC["MapC"] = subMapC
fmt.Println("\nMultityMapC")
for keyC, valC := range mainMapC {
//此处必须实例化接口类型,即*.(map[string]string)
//subMap := valC.(map[string]string)
for subKeyC, subValC := range valC.(map[string]string) {
fmt.Printf("mapName=%s Key=%s Value=%s\n", keyC, subKeyC, subValC)
}
}
}
运行结果
[ `go run multMap.go` | done: 612.6779ms ]
MultityMapA
mapName=MapA Key=A_Key_2 Value=A_SubValue_2
mapName=MapA Key=A_Key_1 Value=A_SubValue_1
MultityMapB
mapName=MapB Key=B_Key_1 Value=B_SubValue_1
mapName=MapB Key=B_Key_2 Value=B_SubValue_2
MultityMapC
mapName=MapC Key=C_Key_1 Value=C_SubValue_1
mapName=MapC Key=C_Key_2 Value=C_SubValue_2
---------------------
作者:boyhandsome7
来源:CSDN
原文:https://blog.csdn.net/boyhandsome7/article/details/79734847
版权声明:本文为博主原创文章,转载请附上博文链接!
golang map多层嵌套使用及遍历方法汇总的更多相关文章
- ASP.NET提取多层嵌套json数据的方法
本文实例讲述了ASP.NET利用第三方类库Newtonsoft.Json提取多层嵌套json数据的方法,具体例子如下. 假设需要提取的json字符串如下: {"name":&quo ...
- 详解ASP.NET提取多层嵌套json数据的方法
本篇文章主要介绍了ASP.NET提取多层嵌套json数据的方法,利用第三方类库Newtonsoft.Json提取多层嵌套json数据的方法,有兴趣的可以了解一下. 本文实例讲述了ASP.NET利用第三 ...
- fastjson排序 Map多层嵌套转换自动排序问题终极解决方案
阅读更多 最近项目中用到了fastjson(1.2.15)需要将前端多层嵌套json转换为map,由于map的无序性,想了很多办法,最终找到使用 Map m= JSONArray.parseObjec ...
- Map,HashMap五种遍历方法
假设有数组 HashMap<Integer, String> h=new HashMap<Integer,String>(); h.put( ...
- java map常用的4种遍历方法
public static void main(String[] args) { Map<String, String> map = new HashMap<String, Stri ...
- python list遍历方法汇总
list=['a','b','c','d','e'] #方法1: print('#方法1:') #i值为列表的item,list为列表名,因此i值即为列表元素 for i in list: #list ...
- iOS常见遍历方法汇总
一.for循环 NSArray *iosArray = @[@"L", @"O", @"V", @"E", @" ...
- Java中关于 ArrayList 和 Map 的常用遍历方法 (学习笔记,便于以后查询)
一.学习ArrayList与Map时,关于常用遍历方法的记录如下: 二.附源码如下: package com.study.in.myself; import java.util.ArrayList; ...
- 双列集合Map的嵌套遍历
双列集合Map的嵌套使用,例如HashMap中还有一个HashMap,这样的集合遍历起来稍微有点儿复杂.例如一个集合:HashMap<Integer,HashMap<String,Inte ...
随机推荐
- 再jsp页面中使用kindeditor 的方法
1.创建一个动态web工程 2.建立一个static库文件夹把CSS,JS样式放进去 3. 复制HTML代码到jsp页面中 4.在相对路径中加上一个"static/" 5.运行截图
- 39.创建多进程及进程通讯 -- Queue--Pipe--Event
创建多进程 windows:进程.线程 linux:进程.线程(做了进程通信的多进程实现的线程) 进程之间内存彼此独立,不管是父子进程还是单个独立进程 multiprocessing:Process ...
- django fields lookup methods(lookup类型)
__exact 精确等于 like 'aaa' __iexact 精确等于 忽略大小写 ilike 'aaa' __contains 包含 like '%aaa%' __ic ...
- oracle常用命令(1)
oracle常用命令 一.登录 1.管理员身份登录:sqlplus/nolog--->conn/as sysdba 2.普通用户登录:sqlplus/nolog---->conn 用户名/ ...
- Web安全小结之前端
- C语言字符串替换
void exchg(char * str) { if(str == NULL) return; int len = strlen(str); char tmp; for(int i=0,j=len- ...
- k8s-PV和PVC使用
上节课我们学习了 PV 的使用,但是在我们真正使用的时候是使用的 PVC,就类似于我们的服务是通过 Pod 来运行的,而不是 Node,只是 Pod 跑在 Node 上而已,所以这节课我们就来给大家讲 ...
- MyBatis 源码篇-日志模块2
上一章的案例,配置日志级别为 debug,执行一个简单的查询操作,会将 JDBC 操作打印出来.本章通过 MyBatis 日志部分源码分析它是如何实现日志打印的. 在 MyBatis 的日志模块中有一 ...
- golang代码中生成pprof和trace报告
// 生成 CPU 报告 import ( "context" "runtime/pprof" "log" ) func cpuProfil ...
- .NET Core 3.0 发布单文件可执行程序
Windows dotnet publish -r win10-x64 /p:PublishSingleFile=true maxOS dotnet publish -r osx-x64 /p:Pub ...