Ich kam aus der C++ Welt und in C gehen ++ in der Regel, wenn Sie über die Leistung kümmern, und Sie müssen nicht Sie geändert werdet, Objekt, Sie geben es konstante Referenz mitKonst Referenz in C++ und gleichwertig in Golang
void func(const std::string& str)
In diesem Fall ist die Zeichenfolge NICHT COPIED und kann in der Funktion nicht geändert werden.
Ich weiß, dass in Go gibt es zwei Möglichkeiten Objekt zu übergeben:
- von Wert, und dann können Sie nicht ändern (oder tatsächlich kann man aber es macht keinen Sinn), aber es sehr speicheraufwendig
- Mit Zeiger, dies ist gut aus den Bedingungen des Speichers, aber Sie können Objekt ändern.
Also, was ist der beste Ansatz? Übergeben Sie immer Objekt für Zeiger, auch wenn Sie es nicht ändern möchten, weil es schneller ist? Oder gibt es einige Compiler-Optimierungen und selbst wenn Sie es per Wert senden, wird es manchmal als Referenz gesendet?
Duplizieren: [Konstante Parameter in Golang-Funktion] (http://stackoverflow.com/a/22093762/1734730) –