【轉】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的類型即可
 
//強類型語言要時刻記着類型的轉換奧!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM