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个问题:

  1. 不定参数只能作为形参的最后一个参数

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)
}

  1. 在对函数进行调用时,固定参数必须传值,不定参数可以根据需要来决定是否要传值(不定参数可以不传值)

不定参数函数调用

不定参数的函数在调用的时候,要注意一些细节问题。


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
}
// ********************************************************************************
posted @ 2020-11-06 18:27  TR_Goldfish  阅读(928)  评论(0编辑  收藏  举报