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