Go语言入门20---函数的多个参数&可变参数|Go主题月

3,400 阅读1分钟

函数的多个参数

package main

import "fmt"

/*
函数调用:
	1.函数名:声明的函数名和调用的函数名要统一
	2.实参必须严格匹配形参:顺序,个数,类型,一一对应
 */
func main() {

	//求两个整数的和
	getAdd(10,20)
	getAdd2(10,20)
	fun1(1.3,2.4,"hello")
}

func getAdd(a int,b int)  {
	sum:=a+b
	fmt.Printf("%d+%d=%d\n",a,b,sum)
}
func getAdd2(a,b int)  {
	fmt.Printf("a:%d,b:%d\n",a,b)
}
func fun1(a,b float64,c string)  {
	fmt.Printf("a:%.2f,b:%.2f,c:%s\n",a,b,c)
}

image.png

可变参数

package main

import "fmt"

func main() {
	/*
	可变参数:
		概念:
			一个函数的参数类型确定,但是个数不确定,就可以使用可变参数
		语法:
			参数名...参数的类型
			对于函数,可变参数就相当于一个切片
			调用函数的时候,可以传入0到对个参数
			Println等为可变参数,包括append
		注意事项:
			A:如果一个函数还有其他参数,
			可变参数要放在参数列表最后
			B:一个参数列表最多只有一个可变参数。
 	*/
	//1.求和
	getSum1()
	getSum1(1,2,3,4,5)
	getSum1(1,2,3,4,5,6,7,8,9)
	//2.切片
	s1:=[]int{1,2,3,4,5}
	getSum1(s1...)//切片类型不符合不能直接传值

	get("hello",2.3,2,3,4)
}
func getSum1(nums...int)  {
	//fmt.Printf("%T\n",nums)//[]int
	sum:=0
	for i:=0;i<len(nums);i++ {
		sum+=nums[i]
	}
	fmt.Println("总和是:",sum)
}

func get(str string,f float64 ,a...int)  {
	fmt.Println(str,f,a)
        fmt.printf("%T\n",a)
}

image.png