在 go 中,泛型函数可以通过使用类型断言、类型别名或空的接口与非泛型代码交互。类型断言允许将值转换为特定类型;类型别名可以创建现有类型的泛型别名;空的接口可以表示任何类型的变量。通过这些方法,泛型函数可以接受或返回非泛型类型的值,从而实现跨不同类型的数据处理。
如何在 Go 中让泛型函数与非泛型函数交互
Go 自 Go 1.18 起引入了泛型,为重用类型和算法代码打开了大门。但是,新的泛型代码如何与现有的、非泛型的代码交互呢?
使用类型断言
类型断言提供了一种将一个接口转换为特定类型的值的方法。这可以通过使用 switch 语句完成:
func AnyToString(any interface{}) string { switch myString := any.(type) { case string: return myString default: return "Unknown" } }