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