在 Go 中,如果你定义了自定义类型,你可以实现 ==
和 !=
操作符来使这两个类型之间可以相互比较。这需要在类型上定义自定义比较函数。
下面是一个例子,展示了如何定义自定义类型,并使其支持相等性比较:
package main
import "fmt"
// 定义自定义类型
type MyInt int
// 实现相等性比较函数
func (a MyInt) Equals(b MyInt) bool {
return a == b
}
func main() {
// 创建两个 MyInt 类型的变量
num1 := MyInt(42)
num2 := MyInt(42)
num3 := MyInt(99)
// 使用相等性比较函数
fmt.Printf("%d equals %d: %v\n", num1, num2, num1.Equals(num2))
fmt.Printf("%d equals %d: %v\n", num1, num3, num1.Equals(num3))
}
在这个例子中,我们定义了一个名为 MyInt
的自定义类型,并为其定义了一个名为 Equals
的方法,用于执行相等性比较。然后,在 main
函数中,我们创建了两个 MyInt
类型的变量,并使用 Equals
方法进行相等性比较。
请注意,Go 中的相等性比较通常使用 ==
和 !=
操作符,而上述方法只是一种自定义类型之间相互比较的方式。根据具体情况,你可能需要定义其他比较函数或操作符。