A 和 B 一样吗?Aif 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}
1 回答

繁星coding
TA贡献1797条经验 获得超4个赞
它们是等价的,除了一个区别:err
变量的范围。在 A 版本中,err
变量的范围是if
声明:在if
.
在 B 版本中,err
变量也将在if
语句之后的范围内,如果err
之前已经定义,它也可能导致编译时错误。
最好始终最小化变量的范围(这样可以减少滥用它们的机会)。如果你不想在 之后进一步检查返回的错误if
,最好使用 A 版本。如果您在 之后确实需要它if
,那么显然 B 版本是最佳选择。
- 1 回答
- 0 关注
- 90 浏览
添加回答
举报
0/150
提交
取消