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 函數來比較兩個可比較的值:
func Less(a, b Comparable[T]) bool { return a.Compare(b) < 0 }
以上是如何在 Go 中實現自訂類型的比較功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!