原文: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多层嵌套使用及遍历方法汇总的更多相关文章

  1. ASP.NET提取多层嵌套json数据的方法

    本文实例讲述了ASP.NET利用第三方类库Newtonsoft.Json提取多层嵌套json数据的方法,具体例子如下. 假设需要提取的json字符串如下: {"name":&quo ...

  2. 详解ASP.NET提取多层嵌套json数据的方法

    本篇文章主要介绍了ASP.NET提取多层嵌套json数据的方法,利用第三方类库Newtonsoft.Json提取多层嵌套json数据的方法,有兴趣的可以了解一下. 本文实例讲述了ASP.NET利用第三 ...

  3. fastjson排序 Map多层嵌套转换自动排序问题终极解决方案

    阅读更多 最近项目中用到了fastjson(1.2.15)需要将前端多层嵌套json转换为map,由于map的无序性,想了很多办法,最终找到使用 Map m= JSONArray.parseObjec ...

  4. Map,HashMap五种遍历方法

    假设有数组            HashMap<Integer, String> h=new HashMap<Integer,String>();        h.put( ...

  5. java map常用的4种遍历方法

    public static void main(String[] args) { Map<String, String> map = new HashMap<String, Stri ...

  6. python list遍历方法汇总

    list=['a','b','c','d','e'] #方法1: print('#方法1:') #i值为列表的item,list为列表名,因此i值即为列表元素 for i in list: #list ...

  7. iOS常见遍历方法汇总

    一.for循环 NSArray *iosArray = @[@"L", @"O", @"V", @"E", @" ...

  8. Java中关于 ArrayList 和 Map 的常用遍历方法 (学习笔记,便于以后查询)

    一.学习ArrayList与Map时,关于常用遍历方法的记录如下:  二.附源码如下: package com.study.in.myself; import java.util.ArrayList; ...

  9. 双列集合Map的嵌套遍历

    双列集合Map的嵌套使用,例如HashMap中还有一个HashMap,这样的集合遍历起来稍微有点儿复杂.例如一个集合:HashMap<Integer,HashMap<String,Inte ...

随机推荐

  1. mongodb的安装部署-备份

    1.安装部署 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.10.tgz tar -zxf mongodb-linux- ...

  2. [LuoguP2164][SHOI2007]交通网络_拓扑排序_概率期望

    交通网络 题目链接:https://www.luogu.org/problemnew/solution/P2164 数据范围:略. 题解: 直接算不好算,我们考虑建反图然后$Toposort$. 这样 ...

  3. storm常见问题

    一.storm ui 不显示 supervisor 信息 在zk节点上删掉storm信息,重新启动storm集群即可

  4. 使用pycharm开发web——django2.1.5(二)创建一个app并做一些配置

    这里我学习的呢是刘江老师的站,主要原因在于他这个版本新,还比较细节 网址先留一手,约等于在引用http://www.liujiangblog.com/ 开始正题: 1.在pycharm界面终端命令行里 ...

  5. 回炉重铸系列之javaEE基础

    这篇文章主要介绍 servlet filter listener interceptor 之 知识点.博文主要从 概念,生命周期,使命介绍其区别.详情如下:   概念 生命周期 使命 servlet ...

  6. 【Trie】L 语言

    [题目链接]: https://loj.ac/problem/10053 [题意]: 给出n个模式串.请问文本串是由多少个模式串组成的. [题解]: 当我学完AC自动机后,发现这个题目也太简单了吧. ...

  7. Promise.all的使用

    我有一个需求如下: 有一个学生号的数组,根据这个数组,取出相关学生的所有信息.获取学生信息的接口用setTime模拟,假设每次请求需要耗时2s,代码如下 // 获取学生信息接口 function ge ...

  8. MySQL SELECT语法(四)UNION语法详解

    源自MySQL 5.7 官方手册:13.2.9.3 UNION Syntax 一.UNION语法 UNION用于将多个SELECT语句的结果合并到一个结果集中. SELECT ... UNION [A ...

  9. C#学习基础资料记录---字典(Dictionary),时间表示方法(DateTime.Now),文件操作

    1.字典 https://www.cnblogs.com/gengaixue/p/4002244.html 2.时间的表示方法 DateTime.Now的多种用法 https://www.cnblog ...

  10. 2、wepy安装后提示Cannot read property 'addDeps' 参考自https://www.cnblogs.com/yuanchaoyong/p/11614400.html

    摘抄自https://www.cnblogs.com/yuanchaoyong/p/11614400.html wepy安装步骤 $ npm install @wepy/cli -g # 全局安装 W ...