• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

go Interface{} 转int

武飞扬头像
雨夜潜行
帮助5

        go中interface类型很好用,但是有时候用了就没办法作为键值了  这点就比较头痛了,这里介绍一种转换方法,非常好用

  1.  
    func GetInterfaceToInt(t1 interface{}) int {
  2.  
    var t2 int
  3.  
    switch t1.(type) {
  4.  
    case uint:
  5.  
    t2 = int(t1.(uint))
  6.  
    break
  7.  
    case int8:
  8.  
    t2 = int(t1.(int8))
  9.  
    break
  10.  
    case uint8:
  11.  
    t2 = int(t1.(uint8))
  12.  
    break
  13.  
    case int16:
  14.  
    t2 = int(t1.(int16))
  15.  
    break
  16.  
    case uint16:
  17.  
    t2 = int(t1.(uint16))
  18.  
    break
  19.  
    case int32:
  20.  
    t2 = int(t1.(int32))
  21.  
    break
  22.  
    case uint32:
  23.  
    t2 = int(t1.(uint32))
  24.  
    break
  25.  
    case int64:
  26.  
    t2 = int(t1.(int64))
  27.  
    break
  28.  
    case uint64:
  29.  
    t2 = int(t1.(uint64))
  30.  
    break
  31.  
    case float32:
  32.  
    t2 = int(t1.(float32))
  33.  
    break
  34.  
    case float64:
  35.  
    t2 = int(t1.(float64))
  36.  
    break
  37.  
    case string:
  38.  
    t2, _ = strconv.Atoi(t1.(string))
  39.  
    if t2 == 0 && len(t1.(string)) > 0 {
  40.  
    f, _ := strconv.ParseFloat(t1.(string), 64)
  41.  
    t2 = int(f)
  42.  
    }
  43.  
    break
  44.  
    case nil:
  45.  
    t2 = 0
  46.  
    break
  47.  
    case json.Number:
  48.  
    t3, _ := t1.(json.Number).Int64()
  49.  
    t2 = int(t3)
  50.  
    break
  51.  
    default:
  52.  
    t2 = t1.(int)
  53.  
    break
  54.  
    }
  55.  
    return t2
  56.  
    }
学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfiabge
系列文章
更多 icon
同类精品
更多 icon
继续加载