if err := json.NewDecoder(r.Body).Decode(&t); err != nil {
rnd.JSON(w, http.StatusProcessing, err)
return
}
乙
err := json.NewDecoder(r.Body).Decode(&t);
if err != nil {
rnd.JSON(w, http.StatusProcessing, err)
return
}
眼眸繁星
浏览 91回答 1
1回答
繁星coding
它们是等价的,除了一个区别:err变量的范围。在 A 版本中,err变量的范围是if声明:在if.在 B 版本中,err变量也将在if语句之后的范围内,如果err之前已经定义,它也可能导致编译时错误。最好始终最小化变量的范围(这样可以减少滥用它们的机会)。如果你不想在 之后进一步检查返回的错误if,最好使用 A 版本。如果您在 之后确实需要它if,那么显然 B 版本是最佳选择。