golang实现java泛型的相同效果
时间: 2023-11-02 15:10:58 浏览: 147
Go语言中没有像Java一样的泛型,但是可以使用接口和空接口来实现类似的效果。
1. 使用接口
可以定义一个接口类型,然后在函数或方法中使用该接口作为参数类型或返回类型来实现泛型。例如:
```
type MyInterface interface{}
func myFunc(a MyInterface, b MyInterface) MyInterface {
// ...
}
```
这样,`myFunc`函数就可以接受任何类型的参数,并返回任何类型的值。
2. 使用空接口
空接口(`interface{}`)是Go语言中一个特殊的接口类型,可以表示任何类型。可以在函数或方法中使用空接口类型来实现类似的效果。例如:
```
func myFunc(a interface{}, b interface{}) interface{} {
// ...
}
```
这样,`myFunc`函数同样可以接受任何类型的参数,并返回任何类型的值。
需要注意的是,在使用接口和空接口实现泛型时,需要进行类型断言和类型转换。具体可以参考Go语言的官方文档:https://golang.org/doc/effective_go.html#interface_conversions
阅读全文