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

小文blog小文 2018-06-27 09:59 5401人围观

最近在学Go语言,在使用map的时候遇到一个小坑,记录一下

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的类型即可

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

转载请注明来自小文blog,本文标题:GO语言map类型interface{}转换踩坑小记

发布评论
生活是一场戏,主角当累了,你亦可成为观众,停下脚步,歇一歇