• 【转】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的类型即可
     
    //强类型语言要时刻记着类型的转换奥!
  • 相关阅读:
    组件之间通信(父传子)
    flex布局
    ffmpeg解析TS流(转)
    swift之?和!的含义(转)
    Swift之画圆角添加多个枚举值方法
    swift之singleton
    swift之闭包
    Swift之fallthrough
    Selector
    Settings Bundle
  • 原文地址:https://www.cnblogs.com/oxspirt/p/10977633.html
Copyright © 2020-2023  润新知