Go におけるジェネリックスの不在を理解する
Go は、シンプルさと効率性を重視したプログラミング言語です。欠けている注目すべき機能の 1 つは、ジェネリックのサポートです。これにより、プログラマーは、さまざまな値を操作できるカスタム データ型を作成できます。
ジェネリックは多くの言語で一般的な概念ですが、Go にはジェネリックが存在しないことが問題となっています。質問。 Go の作成者はなぜこのデザインを選択したのですか?
Go の公式 FAQ によると、この決定は複雑さへの懸念から行われたとのことです。ジェネリックスは、言語の型システムとランタイムに大幅な複雑さをもたらす可能性があります。 Go チームは、この複雑性の追加は、開発者に明確な価値を提供する場合にのみ導入されるべきであると考えています。
彼らは、Go の組み込みマップとスライス、および空のインターフェースを使用してコンテナーを作成する機能を主張しています。 、あまり便利ではない方法ではありますが、プログラマーがジェネリックと同じ目標の多くを達成できるようにします。
Go チームは、ジェネリックが将来的に価値がある可能性があることを認めていますが、彼らは、現時点では利点が潜在的な欠点を上回っていないと考えています。彼らはジェネリックの潜在的な設計を探索し続けており、適切なソリューションが見つかったら、それらを言語に追加します。
注: ジェネリックはバージョン 1.18 で Go に追加されたことに注意することが重要です。 、元の FAQ エントリで表明された懸念に対処します。
以上がなぜ Go には当初ジェネリックがなかったのか、そしてなぜこの決定がなされたのか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。