Go エラー: インスタンス化なしではジェネリック型を使用できません

王林
リリース: 2024-02-08 23:12:09
転載
690 人が閲覧しました

Go エラー: インスタンス化なしではジェネリック型を使用できません

PHP エディター Apple が今日皆さんに共有したいことは、Go 言語のバグについてです。つまり、ジェネリック型はインスタンス化なしでは使用できないということです。 Go 言語では、ジェネリックスは非常に強力な機能であり、より多用途で柔軟なコードを作成できるようになります。ただし、場合によっては、インスタンス化せずにジェネリック型を使用できないという問題が発生することがあります。このエラーにより、修正方法がわからなくなる可能性があります。次に、この問題の原因と解決策を見てみましょう!

質問内容

Go ジェネリックを学習中に、解決できないと思われるエラーに遭遇しました。これを最も単純なコードに要約しました:

リーリー

プレイグラウンドでは、make() 呼び出し (および同様にコメントアウトされた new 呼び出し) で次のエラー メッセージが表示されます。 リーリー

ただし、

make() はインスタンス化関数です。したがって、構文の微妙な点が欠けていることを願っています。 Go は何について不満を抱いており、何を修正する必要があるのでしょうか?

回避策

組み込みの

make など、型パラメータが必要な場所を含むパラメータ化された型を使用する場合は常に、次のことを行う必要があります。定義内の型パラメータを実際の型に置き換えます。これをインスタンス化と呼びます。 リーリー ジェネリック型が

別の

ジェネリック型の型パラメーターとして使用される場合、そのジェネリック型もインスタンス化する必要があります: リーリー 型パラメータは、関数シグネチャ、フィールド、型定義などでインスタンス化に使用できます。

リーリー

言語仕様の関連参照は、(現在)

型定義

: という 2 つの異なる場所にあります。 一个> および

インスタンス化

他のプログラミング言語では、「インスタンス化」はオブジェクトのインスタンスを作成することを指す場合があります。Go では、この用語は特に型パラメータを具象型に置き換えることを指します。私の意見では、この用語の使用法は依然として一貫していますが、Go では必ずしも割り当てを意味するわけではありません。

明示的な型パラメーターなしでジェネリック関数を呼び出すことができることに注意してください。インスタンス化もそこで行われますが、型パラメーターがすべて関数パラメーターから推論される場合がある点が異なります。 リーリー 推論は、型パラメーターのリストが空であってはいけないという制限付きで、汎用の

型にも適用されます。ただし、この機能は無効になっているため、すべての型パラメータを明示的に指定する必要があります。

リーリー

以上がGo エラー: インスタンス化なしではジェネリック型を使用できませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!