我刚刚面临的问题是在以下情况下该怎么办:
func printItems(header string, items []interface{}, fmtString string) { // ... } func main() { var iarr = []int{1, 2, 3} var farr = []float{1.0, 2.0, 3.0} printItems("Integer array:", iarr, "") printItems("Float array:", farr, "") }
Go没有泛型,也不允许使用集合协方差:
prog.go:26: cannot use iarr (type []int) as type []interface { } in function argument prog.go:27: cannot use farr (type []float) as type []interface { } in function argument
有想法吗?
没有任何一种,现在真的没有办法做到这一点
[]int
[]float
[]interface{}
interface{}
两种解决方案都不是很漂亮。