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中文网其他相关文章!