## の行に沿って、多くの関数が「参照によって渡される」項目を更新するコードを書いています。 ## 行の下の #DoSomethingB#。初心者の私にとって、これはかなり直感的ではありません。私はむしろ、関数がその結果を返すようにしたいと思っています(それがメソッドであり、レシーバーを更新する場合を除く)。
###質問:###
DoSomethingB
のようなパターンを使用するための適切な議論はありますか?
は DoSomethingB
(構造メソッドではありません)
これは Go では良いスタイル、または許容できるスタイルと考えられますか? プレイグラウンドのリンクに移動します: https://play.golang.com/p/ELwljCaWDLg
のようなパターンを使用すると、不必要な割り当てを避けることができます。 。ただし、コードが理解しにくくなる可能性があります。 DoSomethingA (結果を返す) を使用することは、一般的に Go ではより慣用的であり、読みやすさの理由から好まれることがよくあります。
のようなコードを目にするのは珍しいことではありませんが、特に大規模なデータ構造を扱う場合、Go の慣用的なアプローチにより、戻り値によるポインターの変更が推奨されます。ポインターを使用して値を直接変更すると (特に整数などの組み込み型の場合)、コードが理解しにくくなる可能性があります。
例
要約すると、慣用的な Go に従いたい場合は、DoSomethingA
のようなパターンを推奨します。元のデータを変更する正当な理由があり、パフォーマンスが心配な場合 (大規模なデータ構造など)、
を使用できます。
以上がGo はどのような場合に値を返すのか、参照を返すのか、あるいは何も返さないのか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。