私はC++開発の9年後にGoを探検しています。 C++では、パフォーマンスの不利益のために、組み込み型の変数を除いて、関数の引数を値で渡すのは悪い習慣です。引数のすべてのフィールドがコピーされ、ほとんどの場合、非常にコストのかかる操作になります。Goメソッドで "this"を値渡しするとパフォーマンスが低下しますか?
Goではこれは当てはまりますか?メソッドに "const"セマンティックを割り当てるためだけに、値で "this"を渡すのは非常に高額に見えます。最初の変更前に変数がコピーされないようにするには、コンパイラをスマートにしてください。 C/C++のようにGoのアンチパターンを値で渡すのはなぜですか?
あなたのC++の知識は時代遅れです。値渡しは実際には多くの状況で問題ありません(そして、組み込み関数ではないにしても、たくさんの型では常に* OKです)。以下はプライマーです:http://cpp-next.com/archive/2009/08/want-speed-pass-by-value/ –
あなたが心配しているコードを教えてください。 Goでは、ポインタだけで構造体を渡すことができます。コピーが必要な場合は、実際にコピーする関数を作成する必要があります。 – janislaw
@janislawそうでない:http://play.golang.org/p/w5_6_w8JAn – zzzz