Go には、比較関数を実装するために型を必要とする組み込みインターフェイスはありません。ただし、独自のインターフェイスを作成して、同等の型を定義できます。
一般的なアプローチは、次のメソッドを使用してインターフェイスを作成することです:
type Comparable[T comparable] interface { Compare(other T) int }
ここで、T はインターフェイスを実装する型であり、int は比較結果 (-1, 0, 1) を表します。
カスタム型が同等であると見なされるには、次のようになります。 Comparable インターフェイスを実装する必要があります:
type MyType struct { // ... } func (t MyType) Compare(other MyType) int { // ... }
Comparable インターフェイスを定義したら、それを使用して型が比較可能かどうかを確認できます:
func IsComparable(i interface{}) bool { _, ok := i.(Comparable[i]) return ok }
Less 関数を使用して、2 つの比較可能な値を比較することもできます:
func Less(a, b Comparable[T]) bool { return a.Compare(b) < 0 }
以上がGo でカスタム型の比較機能を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。