Go の未使用の関数パラメーター
ローカル変数とは異なり、Go では、未使用の関数パラメーターが含まれている場合でも、コンパイラーがプログラムをビルドできます。この動作は、未使用の変数によってコンパイル エラーが発生する C などの言語とは異なります。
この理由については議論の余地があります。ただし、golang-nuts に関するディスカッションで説明されているように、これは次のような考えに由来しています。
未使用のパラメーターは、関数内で明示的に使用されない場合でも、理解を助ける重要なドキュメントを提供します。例:
func foo(param_a int, param_b int) int { return param_a }
param_b が使用されていない場合でも、その存在によって関数の意図が伝わります。これは、次のような場合に特に有益です。
func Distance(node1, node2 Node) int { return 1 }
ここで、Distance は、すべてのエッジにわたって均一なコストで重み付けされたグラフ上で動作します。ノードは使用されませんが、関数の目的を明確にし、ドキュメントとして機能するためには不可欠です。
アンダースコア (_) として名前が付けられた未使用のパラメータのみが許可されるべきだと主張する人もいますが、この変更は Go の変更と競合します。将来の互換性を保証します。さらに、未使用のパラメータは、関数内で使用されていないにもかかわらず、貴重なドキュメントを提供できる可能性があると主張されています。
最終的に、未使用の関数パラメータを許可するという決定は、実用性と実用性との間の認識されたバランスに基づいて決定されます。プログラミングエラー。具体的な理論的根拠は明示的に文書化されていない可能性がありますが、Go でのソフトウェア開発の実際的な現実に基づいています。
以上が他の言語では許可されないのに、Go では未使用の関数パラメーターが許可されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。