希望做这样的事情
curr := foo()["blah"].(string)
curr, err := strconv.ParseFloat(curr, 64)
ERROR: cannot assign float64 to curr (type string) in multiple assignment
我不想制作转换后我不会使用的另一个临时变量。我是Go的新手,所以有一种方法可以帮助我避免
temp := foo()["blah"].(string)
curr, err := strconv.ParseFloat(temp, 64)
答案 0 :(得分:2)
你试图在这里强制进行鸭子打字,并且Go是静态类型的,所以这将是多毛的或不可能的。这证明有另一个变量:
if temp, ok := foo()["blah"].(string); ok {
curr, err := strconv.ParseFloat(temp, 64)
if err != nil {
panic(err)
}
}
去垃圾收集器很生病。为几行提供额外的变量temp
并不是那么糟糕。另外,不要忘记保护类型断言。