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貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個贊
它們是等價的,除了一個區(qū)別:err
變量的范圍。在 A 版本中,err
變量的范圍是if
聲明:在if
.
在 B 版本中,err
變量也將在if
語句之后的范圍內(nèi),如果err
之前已經(jīng)定義,它也可能導(dǎo)致編譯時錯誤。
最好始終最小化變量的范圍(這樣可以減少濫用它們的機(jī)會)。如果你不想在 之后進(jìn)一步檢查返回的錯誤if
,最好使用 A 版本。如果您在 之后確實(shí)需要它if
,那么顯然 B 版本是最佳選擇。
- 1 回答
- 0 關(guān)注
- 103 瀏覽
添加回答
舉報(bào)
0/150
提交
取消