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

Maps Go语言中VALUES的数据类型转换

Maps Go语言中VALUES的数据类型转换

Go
梦里花落0921 2021-11-08 19:11:51
我在 GO 中有一张地图:var userinputmap = make(map[string]string)并且其中的值属于以下类型:[ABCD:30 EFGH:50 PORS:60]并不是说 30,50,60 是这里的字符串。我希望有一个相同的地图,但数值应该是 float64 类型而不是字符串类型。所需的输出:var output = make(map[string]float64)我尝试这样做,但出现错误: cannot use <placeholder_name> (type string) as type float64 in assignment
查看完整描述

1 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

你不能通过简单的类型转换来做到这一点;这两个映射在内存中有不同的表示。


要解决这个问题,您必须遍历第一个映射的每个条目,将浮点数的字符串表示形式转换为 a float64,然后将新值存储在另一个映射中:


import "strconv"


var output = make(map[string]float64)

for key, value := range userinputmap {

    if converted, err := strconv.ParseFloat(value, 64); err == nil {

        output[key] = converted

    }

}


查看完整回答
反对 回复 2021-11-08
  • 1 回答
  • 0 关注
  • 193 浏览
慕课专栏
更多

添加回答

举报

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