Go が関数内の未使用パラメータを使用したコンパイルを許可する理由
C から Go に移行する際の注目すべき違いの 1 つは、Go が未使用パラメータを使用したコンパイルを禁止していることです。関数内の変数。ただし、このルールは、未使用の関数パラメーターを使用して次のコードが正常にコンパイルされたことと一見矛盾しているように見えます:
func main() { print(computron(3, -3)); } func computron(param_a int, param_b int) int { return 3 * param_a; }
公式の説明がないにもかかわらず、Go の貢献者によって提供された理論的根拠は次のように示唆しています:
未使用の別の使用例パラメータはインターフェイスの実装に含まれます。たとえば、均等重みグラフ関数はノード値を無視できます。
func (graph *MyGraph) Distance(node1,node2 Node) int { return 1 }
未使用のパラメータを "_" という名前のパラメータのみに制限するケースも考えられますが、Go 1 の将来の互換性保証では、これは除外されます。そんな変化。さらに、未使用のパラメータは暗黙のドキュメントを提供し、コードベースの理解と保守を容易にします。
要約すると、具体的な理由が欠如しているということは、未使用の関数パラメータを使用したコンパイルを許可するという Go の決定は、恣意的ではあるものの、合理的な理由に基づいていたことを示唆しています。 、彼らの存在を禁止するよりも価値があるとの判断。
以上がGo では、未使用の関数パラメーターを使用したコンパイルは許可されるのに、未使用の変数を使用したコンパイルは許可されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。