Golang中函数的参数和返回值总结
Golang中函数的参数和返回值总结:
一:函数的参数
给函数传递参数分为两种情况:
第一种情况为普通参数列表
第二种情况为不定参数列表。
普通参数列表
所谓的普通参数列表指的是,我们给函数传递的参数的个数都是确定好的
语法格式:
func Test4(a int,b int){
fmt.Println(a,b)
}
注:
函数需要的两个参数的类型都是相同的(比如上例中的整型),所以该函数的参数也可以写成如下的形式:
// 这样写可能参数多了看上去不是很清晰? func Test4(a, b int){ fmt.Println(a,b) }
不定参数列表
所谓的不定参数列表指的是,我们给函数传递的参数的个数事先并不确定,不定参数可以不传值
语法格式:
// 参数num是一个切片
// var num []int
func Test5(num ...int) {
for i :=0;i< len(num);i++ {
fmt.Println(num[i])
}
fmt.Println("\n")
}
在使用不定参数时,要注意3个问题:
- 不定参数只能作为形参的最后一个参数
func Test5(a int,b int ,c int,num ...int) { for i ,value := range num{ fmt.Println("编号为:",i) fmt.Printf("值为:%d\n",value) } fmt.Println("\n") } func main(){ Test5(1,2,3,4,5,6,7,8,9,23) }
- 在对函数进行调用时,固定参数必须传值,不定参数可以根据需要来决定是否要传值(不定参数可以不传值)
不定参数函数调用
不定参数的函数在调用的时候,要注意一些细节问题。
func Test6_1(num ...int) {
for _,value :=range num{
fmt.Println(value)
}
}
// Test6_1(args...)表示将参数全部传递
func Test6_2(args ...int) {
Test6_1(args...)
}
// Test6_1(args[2:]...)表示把编号为2(包含2)以后的数据全部传递,编号从0开始计算
func Test6_3(args ...int) {
Test6_1(args[2:]...)
}
// 把编号为0到2(不包含2)之前的数据全部传递,编号从0开始计算
func Test6_4(args ...int) {
Test6_1(args[:2]...)
}
二:函数的返回值
函数返回值的写法主要有三种:
// 写法1:
func Test1() int {
var sum int =123
return sum
}
// 写法2:
func Test2()(sum int){
// var sum int = 123,func Test2()(sum int)中已经定义了sum,此处重复定义将会报错
sum = 123
return sum
}
// *******************************************************************************
// 写法3:
// go官方推荐写法
func Test3()(sum int){
// var sum int = 123,func Test3()(sum int)中已经定义了sum,此处重复定义将会报错
sum =123
return
}
// ********************************************************************************