Go语言可变参数如何支持不同数据类型?

go语言可变参数如何支持不同数据类型?

go语言可变数量的参数限制

go语言中的可变数量参数通常只能是一种类型。然而,通过将可变参数定义为interface类型,可以通过类型断言来处理不同类型的数据,从而绕过这一限制。

以下是一个示例函数,演示如何使用类型断言来处理不同类型的可变参数:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    a := 0
    result := Sum(a, 1, 2, "3", 4, "5")
    fmt.Println(result)
}

func Sum(a int, more ...interface{}) int {
    for _, v := range more {
        switch  v.(type) {
            case int:
                a += v.(int)
            case string:
                strnum := v.(string)
                num, _ := strconv.Atoi(strnum)
                a += num
        }
    }
    return a
}

以上就是Go语言可变参数如何支持不同数据类型?的详细内容,更多请关注其它相关文章!