在我们编程中会遇到函数或方法形参中,在类型前会有三个点"..."出现,它们的作用和用途是什么呢?接下来我们一起来看一下:
1、为函数定义多个可选参数,比如:
第二种:一般是在调用函数时做可选参数使用
示例:
1、为函数定义多个可选参数,比如:
func FunName(args ...int){
//TODO:代码逻辑
}
//函数FunName接受任意数量的int参数
FunName(arg1)
FunName(arg1,arg2)
FunName(arg1,arg2,arg3)
........
2、将切片拆散(扩展)
slices := make([]int, 6)
FunName(slices ...) //将切片slices(含有6个int型元素)拆散成单个int型作为参数调用函数slices
第一种:是Go提供的语法糖
第二种:一般是在调用函数时做可选参数使用
示例:
func FormatString(str string,args ...interface{}) interface{} {
if len(args) > 0 {
return fmt.Sprintf(str, args...) //要展开slice类型参数
} else{
return str
}
}
调用:
fmt.Println(str)name:= "Jack"
age := 32
str := FormatString("Hello,%s Smith, %d old years.",name, age)
fmt.Println(str) //=> Hello,Jack Smith, 32 old years.