登录
首页 >  Golang >  Go问答

go语言可变数量的参数是不是只能是一种类型

来源:SegmentFault

时间:2023-01-09 16:49:08 345浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《go语言可变数量的参数是不是只能是一种类型》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下go,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

// 可变数量的参数
// more 对应 []int 切片类型
func Sum(a int, more ...int) int {
    for _, v := range more {
        a += v
    }
    return a
}

这个more里面的内容是不是只能是int?

正确答案

more 定义成 interface,Sum函数内部用类型断言判断一下

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语言可变数量的参数是不是只能是一种类型》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表