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

标签 dictionary go

我在 GO 中有一张 map :

var userinputmap = make(map[string]string)

其中的值的类型是:

[ABCD:30 EFGH:50 PORS:60]

这里的 30,50,60 并不是字符串。

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

期望的输出:

var output = make(map[string]float64)

我尝试这样做但出现错误:cannot use <placeholder_name> (type string) as type float64 in assignment

最佳答案

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

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

关于dictionary - 转换 Maps Go 语言中 VALUES 的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32856154/

相关文章:

python - 如何在 Python 中将字典合并在一起?

c# - 确定 Dictionary 是否具有 List 中存在的条目

javascript - 在不改变原始数组的情况下添加数组中的对象的算法

go - 在 Go 中强制使用特定的导入路径

go - 访问多对多表数据

python - python 是否有像容器一样的 dict 但像 numpy.array 一样快?

java - 使用Java Stream将List和String的列表转换为Map

golang : can't execute t. 执行

json - POST 请求负载的内容类型

struct - 高语 : Variable length array in struct for use with binary read