Golang函数-不定参数列表和多返回值函数
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.不定参函数
1>.不定参数的产生背景
在定义函数的时候根据需求指定参数的个数和类型,但是有时候如果无法确定参数的个数,此时我们就可以通过"不定参数列表"来解决这个问题,Go语言的不定参数列表和Python中的"*args"有着异曲同工之妙。
Go语言使用不定参数列表语法格式如下:
func 函数名(数据集合 ...数据类型)
2>.不定参数的案例
package main import ( "fmt" ) /* 不定参函数定义: 计算N个整形数据的和 */ func sum(arr ...int) int { value := 0 /* 使用数组下标进行遍历 */ //for index := 0; index < len(arr); index++ { // value += arr[index] //} /* 使用range关键字进行范围遍历,range会从集合中返回两个数: 第一个是对应的坐标,赋值给了匿名变量"_" 第二个对应的是值,赋值给了变量"data" */ for _, data := range arr { value += data } return value } func main() { /* 我们在调用函数时可以指定函数参数的个数不尽相同。 */ fmt.Println(sum(1, 2, 3)) fmt.Println(sum(1, 2, 3, 4, 5)) fmt.Println(sum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) }
二.多返回函数
package main import ( "fmt" ) /* 函数的返回值是通过函数中的return语句获得的,return后面的值也可以是一个表达式,只要返回值类型和定义的返回值列表所匹配即可。 Go语言支持多个返回值。 */ func test() (x int, y float64, z string) { return 18, 3.14, "尹正杰" } func main() { /* 如果函数定义了多个返回值,就需要使用多个变量来接收这些返回值 可以使用匿名变量("_")来接收不使用的变量的值,因此我们无法将匿名变量的值取出来 */ a, _, c := test() fmt.Println(a) fmt.Println(c) }