3 回答

TA貢獻1866條經驗 獲得超5個贊
命名它們有一些好處:
它用作文檔。
它們會自動聲明并初始化為零值。
如果您有多個返回站點,則在更改函數的返回值時無需全部更改它們,因為它只會顯示“ return”。
還有缺點,主要是很容易通過聲明相同名稱的變量來意外地遮蓋它們。
有效的Go中有一個關于命名結果參數的部分:
可以給Go函數的返回或結果“參數”指定名稱,并將其用作常規變量,就像傳入的參數一樣。命名后,函數開始時會將它們初始化為其類型的零值;否則,將它們初始化為零。如果函數執行不帶參數的return語句,則將結果參數的當前值用作返回值。
名稱不是強制性的,但它們可以使代碼更短,更清晰:它們是文檔。如果我們命名nextInt的結果,則顯而易見,返回的int是哪個。
func nextInt(b []byte, pos int) (value, nextPos int) {[...]

TA貢獻1851條經驗 獲得超4個贊
至少在兩種情況下很有用:
每當必須聲明要返回的變量時。例如
func someFunc() (int, error) {
var r int
var e error
ok := someOtherFunc(&r) // contrived, I admit
if !ok {
return r, someError()
}
return r, nil
}
與
func someFunc() (r int, e error) {
ok := someOtherFunc(&r)
if !ok {
e = someError()
}
return
}
隨著通過函數的執行路徑數量的增加,這一點變得越來越重要。
在記錄返回值并希望按名稱引用它們時。godoc將返回變量視為函數簽名的一部分。
- 3 回答
- 0 關注
- 215 瀏覽
添加回答
舉報