首頁 > 後端開發 > Golang > 主體

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

Susan Sarandon
發布: 2024-11-04 05:53:01
原創
715 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!