深入go泛型特性之comparable「附案例」
package main
import (
"fmt"
)
// 定义一个泛型结构体,用于比较
type Comparable[T comparable] struct {
value T
}
// 定义一个泛型函数,用于比较两个Comparable实例
func Equal[T comparable](a, b Comparable[T])ool {
return a.value == b.value
}
func main() {
// 创建两个整型的Comparable实例
a := Comparable[int]{value: 10}
b := Comparable[int]{value: 20}
c := Comparable[int]{value: 10}
// 使用泛型函数进行比较
fmt.Printf("a == b: %v\n", Equal(a, b)) // 输出: a == b: false
fmt.Printf("a == c: %v\n", Equal(a, c)) // 输出: a == c: true
}
这段代码定义了一个泛型结构体Comparable
和一个泛型函数Equal
,用于比较两个值是否相等。在main
函数中,我们创建了三个Comparable[int]
实例,并使用Equal
函数来展示它们之间的相等性。这个例子简单直观地展示了泛型在Go语言中的应用,有助于理解和学习泛型编程。
评论已关闭