【转】GO语言map类型interface{}转换踩坑小记

原文:https://www.az1314.cn/art/69

------------------------------------------

mapA := make([string]interface{})

mapB := make([string]interface{})

mapA["name"] = "小文"

mapA["age"]  = 25

mapB["mapA"] = mapA

for k, v := range mapB {

   (k == ) {

   

     for _, v1 := range v{

     

         fmt.Println(v1)

         

      }

      

   }

   

}

//cannot range over v (type interface {})  不能对一个空接口进行range

//所以再来看看下 上面发生了什么

//mapA["name"] = "xiaowen" //字符串被强转成interface{}

//mapA["ege"]  = 25        //int被强转成interface{}

//mapB["mapA"] = mapA     //mapA被转成interface{}了 取出可以强转成  map[string]interface{}

for k, v := range mapB {

   if (k == "mapA") {

   

      for _, v1 := range v.(map[string]interface{}){

      

         fmt.Println(v1)

         

      }

      

   }

   

}

//这里把v再转成mapA的类型即可

//强类型语言要时刻记着类型的转换奥!

原文地址:https://www.cnblogs.com/oxspirt/p/10977633.html

时间: 2024-10-27 17:08:07

【转】GO语言map类型interface{}转换踩坑小记的相关文章

c语言中类型隐性转换的坑

谨记:在C语言中,当两种不同类型之间运算时,低字节长度类型会向高自己长度类型转换,有符号会向无符号类型转换. 举例子如下: #include <stdio.h> void func(void) { int i = 1; unsigned char c1 = 1; signed char c2 = -1; if (c2 > i){ printf("\r\n -1 > 1"); } else{ printf("\r\n -1 <= 1");

kafka与zookeeper管理之kafka-manager踩坑小记

在elk集群搭建过程中,为了极大程度的利用服务器资源,kafka.zookeeper.logstash规划混跑在了同一组服务器上.随着业务量的增加,要频繁增加调整kafka的topic,出现问题时还要去服务器敲命令查看kafka和zookeeper的相关信息,效率低而且不方便,于是就考虑到用kafka的管理工具kafka-manager,安装配好后,整个集群的状态一目了然,而且可以方便的进行topic的操作.消费情况的查询.broker各种状态指标的查询等,非常方便,各种信息一目了然,安装配置过

Ubuntu 16.04 安装Mysql 5.7 踩坑小记

title:Ubuntu 16.04 安装Mysql 5.7 踩坑小记 date: 2018.02.03 安装mysql sudo apt-get install mysql-server mysql-client 测试是否安装成功 sudo netstat -tap | grep mysql 相关操作 登录 mysql -uroot -p 检查MySQL服务器占用端口 netstat -nlt|grep 3306 检查MySQL服务器系统进程 ps -aux|grep mysql 查看数据库的

c语言-类型强制转换

强制转换的条件: 1.当所声明的类型不能满足所符值的变量时,需要转换声明的类型,以便能够存储变量. 例如:short存储的最大值为32767,但是所要符值大于32767时,short类型不符合,需要转换short类型.short MarSold = 61600;时就是错的. 2.丢失精度,当除以一个1.0和除以1是不同的.可能造成值的差别.整型除以整型只能得到整型,符值前先进行四舍五入后再符值.a=int/int,就算a是float但是得到是四舍五入后的值.可以将int转成float就可以得到精

async语法升级踩坑小记

从今年过完年回来,三月份开始,就一直在做重构相关的事情. 就在今天刚刚上线了最新一次的重构代码,希望高峰期安好,接近半年的Node.js代码重构. 包含从callback+async.waterfall到generator+co,统统升级为了async,还顺带推动了TypeScript在我司的使用. 这些日子也踩了不少坑,也总结了一些小小的优化方案,进行精简后将一些比较关键的点,拿出来分享给大家,希望有同样在做重构的小伙伴们可以绕过这些. 为什么要升级 首先还是要谈谈改代码的理由,毕竟重构肯定是

算法踩坑小记

经过前面研究图像算法和近阶段研究视频和音频算法的经历经验. 在2019年快要来临的时候,写下这篇小记. 目的很简单,总结过往,展望未来. 这里列举一些本人在算法上踩过的坑和出坑思路. 主要是数据标准化问题. 1.临界值问题  (最大值,最小值,阈值,无穷小,无穷大) 最早做一键修图的时候,在这个坑上踩了太多次. 简单描述就是, (示例伪代码例子仅供理解思考参考,不具有实际意义) 1.1 梯度消失 如果一个算法在计算过程中,存在最小值(无穷小,一般为0或接近0的数), 那就很可能出现"梯度消失&q

Guava Lists.transform踩坑小记&lt;转&gt;

1.问题提出 1.前段时间在项目中用到Lists.transform返回的List,在对该list修改后发现修改并没有反映在结果里,研究源码后发现问题还挺大.下面通过单步调试的结果来查看Guava Lists.transform使用过程中需要注意的地方. a.对原有的list列表修改会影响Lists.transform已经生成列表 由上图可以看出,对原数据集personDbs的修改会直接影响到Lists.transform方法返回的结果personVos,这是很危险的,如果在使用的过程中不注意的

Laravel踩坑小记

背景:使用laravel项目的命令行惊现错误php artisan companyCustomerStatisticsCommand In Connection.php line 664: could not find driver (SQL: select max(`customer_id`) as aggregate from `statistic_customer`) 排查:1.浏览器直接访问项目,数据库均能正常访问2.浏览器查看phpinfo(), 获取到php版本信息 PHP Vers

HTTP访问控制(CORS)踩坑小记

前几天在帮后端排查一个cors的问题的时候发现的一些小坑特此记录 ** cors的本质是出于安全原因,浏览器限制从脚本内发起的跨源HTTP请求. 例如,XMLHttpRequest和FetchAPI遵循同源策略. 这意味着使用这些API的Web应用程序只能从加载应用程序的同一个域请求HTTP资源,除非使用CORS头文件.跨域并非一定是浏览器限制了跨站请求,也有可能是跨站请求可以正常发起,但是返回结果被浏览器拦截了.最好的例子是 CSRF跨站攻击原理,请求是发送到了后端服务器无论是否跨域!注意:有