ホームページ > バックエンド開発 > Golang > Go では、未使用の関数パラメーターを使用したコンパイルは許可されるのに、未使用の変数を使用したコンパイルは許可されないのはなぜですか?

Go では、未使用の関数パラメーターを使用したコンパイルは許可されるのに、未使用の変数を使用したコンパイルは許可されないのはなぜですか?

DDD
リリース: 2024-12-29 19:31:11
オリジナル
555 人が閲覧しました

Why Does Go Allow Compilation with Unused Function Parameters but Not Unused Variables?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート