Golang:变参函数

作者: 与蟒唯舞 | 来源:发表于2017-12-21 11:33 被阅读42次

    变参函数是指可以接受可变数量的参数的函数。

    语法

    如果一个函数的最后一个参数由 ...T 表示,则表示该函数可以接受任意数量的类型为 T 的参数。...T 在内部表示类型为 []T 切片。

    请注意:只有函数的最后一个参数才能指定为可变参数。

    如果没有给可变参数传递任何值,则可变参数为 nil 切片,长度和容量都是0。

    传递切片给可变参数
    package main
    
    import (
        "fmt"
    )
    
    func find(num int, nums ...int) {
        fmt.Printf("type of nums is %T\n", nums)
        found := false
        for i, v := range nums {
            if v == num {
                fmt.Println(num, "found at index", i, "in", nums)
                found = true
            }
        }
        if !found {
            fmt.Println(num, "not found in ", nums)
        }
        fmt.Printf("\n")
    }
    func main() {
        nums := []int{89, 90, 95}
        find(89, nums...)
    }
    

    这里有一个语法糖用来将切片传递给变参函数:可以在切片后面加 ...,这样会将切片展开为其中的各个元素并将它们传递给变参函数。

    相关文章

      网友评论

        本文标题:Golang:变参函数

        本文链接:https://www.haomeiwen.com/subject/vqnowxtx.html