go语言学习笔记 — 基础 — 函数:可变参数
Posted Locutus
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言学习笔记 — 基础 — 函数:可变参数相关的知识,希望对你有一定的参考价值。
1. 函数入参
函数声明与函数调用时,可以不设置固定数量的参数。格式如下:
func 函数名(固定参数列表, v ...T) (返回参数列表) {
函数体
}
- 函数入参的前面是固定参数列表,末尾一般放置可变参数。当没有固定参数列表时,所有入参变量都是可变参数
- 可变参数只能出现在入参的后半部分,因此固定参数只能放在入参的前半部分
- v是可变参数变量,类型为[]T,也就是含有多个元素的T类型切片。v与T之间由“…”3个点组成
- T为可变参数类型,当T为interface{}时,传入参数可为任意类型
2. 可变参数的形式
- 所有入参都是可变参数
fmt.Println的函数声明如下:
func Println(a ...interface{}) (n int, err error){
return Fprintln(os.Stdout, a...)
}
fmt.Println()的入参值类型不受限制。例如:
fmt.Println(5, "hello", &struct{ a int}{1}, true)
- 部分入参是可变参数
fmt.Printf()的第一个入参为固定参数列表,后面的参数是可变参数。
func Printf(format string, a ...interface{}) (n int, err error) {
return Fprintf(os.Stdout, format, a...)
}
在调用fmt.Printf()函数时,第一个固定参数必须是字符串(对应参数变量是format),后面的参数数量可以变化。
3. 遍历可变参数列表(获取每一个参数的值)
详见go_learning
以上是关于go语言学习笔记 — 基础 — 函数:可变参数的主要内容,如果未能解决你的问题,请参考以下文章