好的,我正在使用以下代码,
lst = [np.zeros((10, 2)), np.zeros((20, 2)),
np.zeros((15, 2)), np.zeros((12, 2))]
result = sorted(lst, key=lambda x: x.shape[0] * x.shape[1])[-1]
现在,当我尝试运行此代码时,出现以下错误,
err := r.ParseForm()
if err != nil {
log.Panic(err)
}
var user User
err := decoder.Decode(&user, r.PostForm)
if err != nil {
log.Panic(err)
}
现在我知道这是由于使用相同的变量,在这种情况下是no new variables on left side of :=
但是我看到很多例子,这是其他开发人员如何处理错误处理的?
我一直使用的方式就是使用err
和err1
,这样我就可以构建代码了。
我一直在讨论文档但是有很多东西需要考虑并且必须错过err2
变量如何被重用,或者我完全误解了什么?
谢谢,
答案 0 :(得分:2)
你可以对待你的错误就像这样。
if err := r.ParseForm(); err != nil {
log.Panic(err)
}
var user User
if err := decoder.Decode(&user, r.PostForm); err != nil {
log.Panic(err)
}
或全球定义error
。
var err error
err = r.ParseForm()
答案 1 :(得分:1)
您重新声明了变量err
。您经常看到的是较短的错误处理语法:
if err := DoSomething(); err != nil {
// handle
}
在控制结构和for循环中声明的变量仅对该块可见。因此,上面声明的err
只能在if块中看到。