不定参数是指函数传入的参数个数为不定数量。

一、函数定义

首先来看如何定义一个不定参数的函数:

func YourFun(v... interface{}){}

该函数定义,定义了一个接受任何数目任何类型参数的函数。这里特殊的语法是三个点“...”,在一个变量后面加上三个点后,表示从该处开始接受不定参数,不同于python,golang的不定参数如果将这里"interface{}" 替换成某一确定类型,那么其就只能接受该类型的不定参数。

二、“...”

上面我们看到有三个点"..."的特殊标记。那么这三个点"..."有啥作用呢?

2.1 不定参数

如上所述,在定义不定参数时,表示从该参数开始记录不定参数

2.2 解引用slice

当要传递若干个值到不定参数函数中得时候,可以手动书写每个参数,也可以将一个slice传递给该函数:

YourFunc (YourSlice...)

通过"..."可以将slice中得参数对应的传递给函数。相当于python中得“*args”。

这里要注意的是,解引用slice目前只能在不定参数函数传递参数时使用,在其他地方使用会报错。

三、遍历参数

下面我们来看一个实例:

func P (v... string) {for _,item := range v {    fmt.Println("item:",item)    }}func main() {    var l []string    l = append(l,"a")    l = append(l,"b")    fmt.Println("l is ",l)    P(l...)}

这里我们看到的结果是,首先一个完整的list,然后是每个元素:

l is  [a b]item: aitem: b

通过配合使用for...range可以遍历不定参数v中得每个参数。这里我们将不定参数类型设为string,因此只能接受若干的string 类型的参数。

相关文章教程推荐:golang教程

更多相关文章

  1. golang不可重入函数实现
  2. golang如何传不定参数
  3. golang不定长参数写法
  4. golang的函数怎么写
  5. 从go语言闭包谈函数式编程
  6. go语言中函数与方法介绍
  7. go语言结构体组合函数介绍
  8. Go命令行参数及标准输入输出介绍
  9. Golang如何接收前端的参数

随机推荐

  1. 骗局!卸载搜狗输入法教程
  2. 【重磅】Google或借道搜狗回归中国,明天见
  3. Core Java 并发:理解并发概念
  4. 5个有趣的程序员彩蛋
  5. 模块_Haskell笔记2
  6. Python&C++造就Google人工智能系统Tensor
  7. 大厂面试官竟然这么爱问Kafka,一连八个Kaf
  8. 1计算机网络【开山篇】
  9. 一场函数式思维模式的洗礼
  10. API注入机制及插件启动流程_VSCode插件开