首頁 >後端開發 >Golang >如何在 Go 中實現自訂類型的比較功能?

如何在 Go 中實現自訂類型的比較功能?

Susan Sarandon
Susan Sarandon原創
2024-11-04 05:53:01842瀏覽

How do you implement comparison functionality for custom types in Go?

Go 中的比較介面

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 介面

一旦定義了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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn