猿问

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

我在 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


梦里花落0921
浏览 194回答 1
1回答

富国沪深

你不能通过简单的类型转换来做到这一点;这两个映射在内存中有不同的表示。要解决这个问题,您必须遍历第一个映射的每个条目,将浮点数的字符串表示形式转换为 a float64,然后将新值存储在另一个映射中:import "strconv"var output = make(map[string]float64)for key, value := range userinputmap {&nbsp; &nbsp; if converted, err := strconv.ParseFloat(value, 64); err == nil {&nbsp; &nbsp; &nbsp; &nbsp; output[key] = converted&nbsp; &nbsp; }}
随时随地看视频慕课网APP

相关分类

Go
我要回答