Golang:变参函数

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

语法

如果一个函数的最后一个参数由 ...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...)
}

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 人生苦多,快来 Kotlin ,快速学习Kotlin! 什么是Kotlin? Kotlin 是种静态类型编程...
    任半生嚣狂阅读 26,276评论 9 118
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,270评论 0 4
  • 原文地址:C语言函数调用栈(一)C语言函数调用栈(二) 0 引言 程序的执行过程可看作连续的函数调用。当一个函数执...
    小猪啊呜阅读 4,678评论 1 19
  • 本教程基于Python 3,参考 A Byte of Python v1.92(for Python 3.0) 以...
    yuhuan121阅读 3,111评论 1 6
  • 自春秋时期起,属臣见主上、君王,不仅要解剑,还要脱鞋。汉朝有两位朝臣有明确记载可以“带剑履上殿,入朝不趋”,一个是...
    艾米Ammy阅读 261评论 0 0