GO中的函式設計時候,引數傳遞選擇傳遞值還是傳遞指標?

batmanustc發表於2018-02-11

在 C++ 中,函式引數可以這樣傳遞:

func1(Param *p)
func2(Param p)

在 Java 中,只能使用 func1 的形式,但是 Java 中預設使用引用傳遞。

GO 中也是可以使用 func1,func2 兩種形式,在自己設計函式的時候,究竟採用哪種?

看 GO 標準庫中: func Indent(dst *bytes.Buffer, src []byte, prefix, indent string) error

有些引數是指標(bytes),有些是值(indent)。

不知道在設計的時候,有沒有什麼規範或者約定區遵守,能夠使得引數傳遞更規範一些?

另外 GO 中,方法集的 receiver 可以是指標也可以是值,那 receiver 選擇指標還是值呢?

更多原創文章乾貨分享,請關注公眾號
  • GO中的函式設計時候,引數傳遞選擇傳遞值還是傳遞指標?
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章