內作用域變量是否有一個err
已經在foo()
範圍內創建後爲範圍在if
聲明第二err
優勢?特別是在內存管理方面或習慣上。優勢,如果一個塊
版本1
func foo() {
temp, err := something()
if err != nil {
...
}
if err := other(); err != nil {
...
}
}
2版
func foo() {
temp, err := something()
if err != nil {
...
}
err = other()
if err != nil {
...
}
}
作用域變量https://golang.org/doc/effective_go.html#control-structures
命名返回值就像標籤一樣,當你需要它們時非常有用,但你幾乎從不這樣做。 –
正確。但我在項目中看到很多代碼,人們把它作爲標準。 Go的博客建議不要使用它們,除非在特殊情況下允許代碼更易於閱讀(通常意味着不會)。 – eduncan911
當我需要修改函數中的返回值時,我幾乎只使用命名的返回值。 「延遲函數可以讀取並分配給返回函數的返回值。」 https://blog.golang.org/defer-panic-and-recover –