Dictionary 在Maps Go语言中转换值的数据类型

Dictionary 在Maps Go语言中转换值的数据类型,dictionary,go,Dictionary,Go,我在围棋中有一张地图: var userinputmap = make(map[string]string) 其中的值类型为: [ABCD:30 EFGH:50 PORS:60] 并不是说30,50,60是这里的弦 我希望有一个相同的映射,但是数值应该是float64类型而不是字符串类型 期望输出: var output = make(map[string]float64) 我试图这样做,但我得到了一个错误:不能在赋值中使用(类型字符串)作为float64类型您不能通过简单的类型转换来实现

我在围棋中有一张地图:

var userinputmap = make(map[string]string)
其中的值类型为:

[ABCD:30 EFGH:50 PORS:60]
并不是说30,50,60是这里的弦

我希望有一个相同的映射,但是数值应该是float64类型而不是字符串类型

期望输出:

var output = make(map[string]float64)

我试图这样做,但我得到了一个错误:
不能在赋值中使用(类型字符串)作为float64类型

您不能通过简单的类型转换来实现这一点;这两个地图在内存中有不同的表示形式

要解决此问题,您必须迭代第一个映射的每个条目,将浮点的字符串表示形式转换为
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
    }
}