为了账号安全,请及时绑定邮箱和手机立即绑定

在 Golang 中将未知接口转换为 float64

在 Golang 中将未知接口转换为 float64

Go
白衣染霜花 2021-07-07 14:07:38
所以我收到了一个接口{},但我想以任何可能的方式将其转换为 float64 或如果不可能则返回错误。这是我在做什么:func getFloat(unk interface{}) (float64, error) {    if v_flt, ok := unk.(float64); ok {        return v_flt, nil    } else if v_int, ok := unk.(int); ok {        return float64(v_int), nil    } else if v_int, ok := unk.(int16); ok {        return float64(v_int), nil    } else ... // other integer types    } else if v_str, ok := unk.(string); ok {        v_flt, err := strconv.ParseFloat(v_str, 64)        if err == nil {            return v_flt, nil        }        return math.NaN(), err    } else if unk == nil {        return math.NaN(), errors.New("getFloat: unknown value is nil")    } else {        return math.NaN(), errors.New("getFloat: unknown value is of incompatible type")    }}但我觉得我走错了路,有没有更好的方法来做到这一点?
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 287 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信