ホームページ >バックエンド開発 >Golang >Go Generics の Union Constraints の共有メソッドにアクセスするにはどうすればよいですか?

Go Generics の Union Constraints の共有メソッドにアクセスするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-23 19:41:11183ブラウズ

How Can I Access Shared Methods in Go Generics' Union Constraints?

Go ジェネリックを使用したユニオン制約の共有メソッドへのアクセス

Go ジェネリック (v1.18) では、型ユニオン制約を使用して、複数のタイプの値。ただし、これらの型間で共有メソッドにアクセスする方法について疑問が生じます。

次の例を考えてみましょう。

このコードでは、A と B がメソッドを共有していますが、 some[T AB]からアクセスしようとするとエラーが発生します。これは、コンパイラが制約インターフェイスで明示的に宣言されたメソッドのみを認識するためです。

この問題を解決するには、以下に示すように、共有メソッドをインターフェイス制約に追加できます。

このアプローチでは、T をメソッドを実装する A または B の型に制限します。

ただし、この解決策は Go 1.18 の制限の回避策です。ジェネリック。言語仕様ではこれが可能であることが示唆されていますが、コンパイラはそれをサポートしていません。この制限は Go 1.18 リリース ノートで認識されており、問題 #51183 に文書化されています。この制限は Go 1.19 で削除されることが期待されています。

以上がGo Generics の Union Constraints の共有メソッドにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。