我在 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
}
}
- 1 回答
- 0 關注
- 213 瀏覽
添加回答
舉報
0/150
提交
取消