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 ...
随机推荐
- 基于mysqld_multi实现MySQL多实例配置
环境: 操作系统 CentOS7.5(已安装MySQL) 主机名 localhost 本机安装路径为 /usr/local/mysql 实验初始配置:所有主机关闭防火墙与selinux [ro ...
- 一个memset导致的血案
本文记录解答MIT 6.828 Lab 1 Exercise 10时遇到的一个Bug. 问题描述 在i386_init入口处设置断点并运行,发现执行memset(edata, 0, end - eda ...
- 《PC Assembly Language》读书笔记
本书下载地址:pcasm-book. 前言 8086处理器只支持实模式(real mode),不能满足安全.多任务等需求. Q:为什么实模式不安全.不支持多任务?为什么虚模式能解决这些问题? A: 以 ...
- 【转贴】linux 终端报Message from syslogd
linux 终端报Message from syslogd xiao9873341760人评论8537人阅读2017-03-27 14:19:31 https://blog.51cto.com/xia ...
- MySQL主从同步报错1507
mysql 从库上手动删除partiton后,主库未做修改.后期主库上删除partiton后,出现问题. 故障现场 Last_Errno: 1507 Last_Error: Error 'Error ...
- 为什么fastjson字段为null时不输出空字符串?
为什么fastjson字段为null时不输出空字符串? Map < String , Object > jsonMap = new HashMap< String , Object& ...
- Eureka 服务中心
old 使用Eure ...
- COGS 2633. [HZOI 2016] 数列操作e
[题目描述] 一个长度为n的序列,一开始序列数的权值都是0,有m次操作 支持两种操作, 1 L R x,给区间[L,R]内,第一个数加x,第二个数加2^2⋅x,第三个数加3^2⋅x...第R-L+1个 ...
- 不吹不黑,赞一下应用运维管理的cassacdra
不吹不黑的为菊厂的应用运维管理AOM点个赞.Why? 某菊厂应用运维管理工具AOM每天处理着亿级条数据,这么多数据是怎么存储的呢? 说到数据存储就会想到关系型数据库,比如mysql,oracle,sy ...
- Rikka with Competition hdu 6095
签到题目,排序然后按序清理掉一定会输的结果就可以. ac代码: #include <iostream> #include <cstdio> #include <cstri ...