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

Posted oxspirt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的类型即可
 
//强类型语言要时刻记着类型的转换奥!

以上是关于GO语言map类型interface{}转换踩坑小记的主要内容,如果未能解决你的问题,请参考以下文章

go判断interface类型及类型转换

Go -- type 和断言 interface{}转换

Go语言高级特性总结——StructMap与JSON之间的转化

[GO专栏-4]Go语言数据类型

Go 语言中的动态 JSON

Go interface 类型转换原理剖析