Go 語言返回值是引用時return後省略是推薦寫法嗎?

時間 2021-05-10 03:32:03

1樓:初一公主奶爸

返回指標主要在這幾個場景:

結構體較大,要求高效能,減少記憶體複製。

物件導向程式設計的時候,需要在方法內修改結構體內的字段時。

希望在多個外層函式裡修改結構體值的時候。

2樓:冒泡

我比較推薦的做法是,如果你是命名返回的宣告方式,就採用賦值並且單獨return語句返回,否則最好不要用命名返回

如果返回引數比較多,用命名的風格會好一些,因為很多時候這些引數並不是每個都參與了返回值的意義的,例如:

func f() (a int, b string, err error也許你這裡先部分計算了a和b的值

if出錯的時候只有err有意義,a和b一般是不需要特別保證返回值的,即呼叫者看到err不為nil,就不應該管a和b

err = SOME_ERR

return沒必要這樣,除非你的函式保證在出錯的時候a和b必須返回零值return 0, "", SOME_ERR執行成功,a和b在計算過程中已經賦值了正確的返回,err沒賦值過,預設就是nil

return

//沒必要這樣:

//return a_result, b_result, nil}

3樓:楊堤酒郎

第一種,返回值少,可以寫為

func Say3() *Person

return p

},也可以嘛。多的話,還是用等二種,清晰一些。

4樓:挨踢文刀

個人看法,如果函式簡單(比如你自己舉的這個例子),可以用Say3的風格,如果函式實現比較複雜,還是用Say4的風格比較清晰。總之,自己編碼的時候保持風格一致就行。

請問c語言中的 的返回值是什麼?

暮無井見鈴 一段時間內 都是。至少在 C99 C17 中,true 就是 int 型別的 1 不過在 C23 1 中改掉了。true 變成了 Bool 1u 型別變成了 Bool 而在預處理環境中表現為無符號整數。 邱昊宇 是 int 型的 0 或者 1 The equal to and not e...

怎樣生動的理解C語言中的返回值return?

醉臥沙場 知道C語言的返回值是什麼並不難,它一般只是乙個儲存在約定暫存器 比如eax 中返回給呼叫函式讀取的數值而已。但是如果你需要了解整個函式呼叫以及返回的過程,才能對其有更全面的理解。我給很多人解釋過函式呼叫和返回的事情了,所以這裡不再過多贅述細節。有興趣的話可以看我為此寫的系列文章 醉臥沙場 ...

c語言中的RETURN()返回值是什麼意思?

大多數函式在執行完畢後,需要向呼叫者報告函式的執行結果,就像大多數leader都會要求 及時回話 一樣。函式的執行結果可以是數學計算的值,也可以是用以表示操作執行狀態的其他值 例如寫磁碟檔案是否成功,成功則搞0,不成功則報告其他值 一般而言,向呼叫者報告執行結果是通過函式的返回值來實現的,也就是通過...