Golang 泛型详解
在Golang中,泛型的概念通过接口和反射来实现。Golang不直接支持传统的泛型,但可以通过接口实现类似泛型的功能。
以下是一个简单的使用接口实现泛型的例子:
package main
import (
"fmt"
)
// 定义一个接口,可以用来表示任何想要的类型
type Integerer interface {
intValue() int
}
// 定义一个结构体和它的方法
type Number struct {
value int
}
// 实现Integerer接口的方法
func (n Number) intValue() int {
return n.value
}
// 一个使用泛型的函数
func printAsInt(i Integerer) {
fmt.Println(i.intValue())
}
func main() {
num := Number{5}
printAsInt(num) // 输出: 5
}
在这个例子中,我们定义了一个Integerer
接口和一个方法intValue()
,然后在Number
结构体上实现了这个方法。printAsInt
函数接受一个Integerer
类型的参数,并调用intValue()
方法来打印值。这样,我们就能够用printAsInt
函数来打印任何实现了Integerer
接口的类型的值。
评论已关闭