如何通过多态实现变参数类型求和操作?
- 内容介绍
- 相关推荐
本文共计291个文字,预计阅读时间需要2分钟。
为了实现一个简单的`Add2`函数,我们可以定义一个接口`sum`,然后在`Add2`函数中调用这个接口。以下是一个简化的代码示例:
python定义一个sum接口def sum(a, b): return a + b
实现Add2函数def Add2(a, b): return sum(a, b)
测试Add2函数result=Add2(10, 20)print(result)
这段代码中,`sum`是一个简单的接口函数,它接收两个参数并返回它们的和。`Add2`函数则直接调用`sum`来执行加法操作。这样,我们就可以通过修改`sum`函数来实现不同的加法逻辑,而无需修改`Add2`函数。
求问下面的Add2这里怎么实现?sum为interface好像没法任意求和?求问下面的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"))}本文共计291个文字,预计阅读时间需要2分钟。
为了实现一个简单的`Add2`函数,我们可以定义一个接口`sum`,然后在`Add2`函数中调用这个接口。以下是一个简化的代码示例:
python定义一个sum接口def sum(a, b): return a + b
实现Add2函数def Add2(a, b): return sum(a, b)
测试Add2函数result=Add2(10, 20)print(result)
这段代码中,`sum`是一个简单的接口函数,它接收两个参数并返回它们的和。`Add2`函数则直接调用`sum`来执行加法操作。这样,我们就可以通过修改`sum`函数来实现不同的加法逻辑,而无需修改`Add2`函数。
求问下面的Add2这里怎么实现?sum为interface好像没法任意求和?求问下面的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"))}
