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:变参函数

    变参函数是指可以接受可变数量的参数的函数。 语法 如果一个函数的最后一个参数由 ...T 表示,则表示该函数可以接...

  • 函数变参的使用

    介绍C/C++,java,和go语言对函数变参的使用。 1. C/C++语言的变参 1.1 变参函数声明 变参函数...

  • 用宏解决C语言变参函数无法获取参数数量的问题

    最近在做一个LED blink函数库的时候,打算用变参函数来作为api,但是众所周知,变参函数需要传入参数的数量,...

  • Golang函数

    函数 Golang函数特点 无需声明原型支持多返回值不定参数传参 也就是函数的参数个数不是固定的 但是后面的类型是...

  • go语言函数变参

    例子 函数变参的定义:func Printf(format string, a ...interface{}) (...

  • Python3-函数

    无参函数 注:调用函数的方法必须写在函数后,写在之前会报错;iOS 代码是写在哪里都可以调用的。 含参函数 局部变...

  • 笨办法学C 练习25:变参函数

    练习25:变参函数 原文:Exercise 25: Variable Argument Functions 译者:...

  • go web 编程笔记

    函数 go函数接受变参func x(arg ...init)int {} defer defer 会按照后进先出的...

  • Learn Golang in Day 8

    Learn Golang in Day 8 变量作用域 局部变量 全局变量 形参也是局部变量 局部变量 函数内部声...

  • Golang基础(五)——函数二

    Golang基础(五)——函数二 @([07] golang)[Go总结] 匿名函数 匿名函数就是将一个函数直接赋...

网友评论

    本文标题:Golang:变参函数

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