求问下面的Add2这里怎么实现?sum为interface好像没法任意求和? 求问下面的Add2这里怎么实现?sum为interface好像没法任意求和? 123456789101112131415161718192021222324252627282930313233343536func Add(var
求问下面的Add2这里怎么实现?sum为interface好像没法任意求和?
123456789101112131415161718192021222324252627282930313233343536func Add(vars ... int)(ret int){ var sum int for _,v := range vars { //fmt.Println("v",v) sum += v } return sum}//这里怎么实现?sum为interface好像没法任意求和?func Add2(vars ... interface{})(ret interface{}){ /* var sum interface{} for _,v := range vars { switch v.(type){ case int: sum += v case float64: sum += v case string: sum += v } } */ return sum}func main() { fmt.Println(Add2(1,2)) fmt.Println(Add2(1,2,3)) fmt.Println(Add2(2.4, 3.6, 1.0)) fmt.Println(Add2("Hello", "world", "zhong"))}