如何通过多态实现变参数类型求和操作?

2026-06-11 06:293阅读0评论SEO基础
  • 内容介绍
  • 相关推荐

本文共计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"))}