Golang 学习笔记

Golang:变参函数

2017-12-21  本文已影响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...)
}

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

上一篇 下一篇

猜你喜欢

热点阅读