、=) Go Generics を使用しますか? " />
Go 1.18 では、ジェネリックにより、型の互換性を強制するために調整された制約が可能になります。ただし、「>」を使用しようとすると、 'comparable' 制約を持つ演算子を使用すると、エラーが発生する可能性があります。
'comparable' 制約は、型が等価演算子 ('==' および '!=) をサポートしていることを検証します。 ')。これには、同等のフィールドを持つ配列や構造体など、マップ キーとして適格な型が含まれます。特に、インターフェイスは実行時パニックを引き起こす可能性があるため除外されます。
Go の仕様では、「比較演算子」という用語で順序演算子について言及していますが、それらは等価性 ('==' と '!=') と比較演算子を区別しています。順序付け演算子 ('<'、'>'、'<='、'>=')。 'ordered.'
Go 1.21
1.18 に移動1.20
例:
import "golang.org/x/exp/constraints" func getBiggerNumber[T constraints.Ordered](t1, t2 T) T { if t1 > t2 { return t1 } return t2 }
適切な制約を選択することで、ジェネリック関数での型の互換性と正しい比較動作が保証されます。
以上がGo ジェネリックで順序演算子 (<、>、<=、>=) を安全に使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。