函数

  • 1、无参数无返回函数
    Go语言学习
  • 2、有参无返回
    Go语言学习
  • 多个参数
    Go语言学习
  • 3、不定参数类型
package main

import "fmt"

func MyFunc(a int ,b int) {  //固定参数
	fmt.Printf("%d")
}

//..int类型这样的类型  ...type不定参数类型
//注意:不定参数,一定(只能)放在形参中的最后一个参数
func MyFunc1(args ...int) {//传递的实参可以是0或者多个
	//fmt.Println("len(args)",len(args))  //获取用户传递参数的个数
	for i :=0;i<len(args) ;i++  {
		fmt.Printf("args[%d] = %d\n",i,args[i])
		
	}
fmt.Println("=================================")
	//返回2个值,第一个是下标,第二个是下标所对应的数
	for i,data :=range args{
		fmt.Printf("args[%d] = %d\n",i,data)

	}
}

//固定参数一定要传参,不定参数根据需求传递参数
func MyFunc2(a int,args...int) {


}
func main() {
	//MyFunc(666,222)
	MyFunc1()
	fmt.Println("---------------------------------------")
	MyFunc1(1)
	fmt.Println("---------------------------------------")
	MyFunc1(2,3,4)
}
  • 4、不定参数传递
package main

import "fmt"

func myfunco1(tmp ...int)  {
	for _, data := range tmp{
		fmt.Println("data =",data)

	}
}

func myfunc2(tmp ...int) {

	for _,data :=range tmp {
		fmt.Println("data=",data)
	}
}
func test(args ...int) {
	//全部元素传递给myfunc01
	//myfunco1(args...)
	//只想把后2个参数传递给另外一个函数使用
	myfunc2(args[2:]...) //从args[2]开始(包括本身),把后面的所有元素传递过去
	myfunc2(args[:2]...) //0---2(不包括数字2下标),传递过去
}
func main() {
	test(1,3,4,5)
}
  • 5、多个返回值
package main

import "fmt"

//多个返回值
func myfunc11()(int,int,int) {
	return 1,2,3
}

//go语言推荐写法
func myfunc12()(a,b,c int) {
	a,b,c = 11,22,33
	return
}
func main() {
	//函数调用
	a,b,c := myfunc12()
	fmt.Printf("a=%d,b=%d,c=%d",a,b,c)
}

函数定义说明:

  • funnc:函数由关键字func开始声明
  • FuncName:函数名称,根据约定,函数名首字母小写即为:private,大写即为:public
  • 参数列表:函数可以有0个活多个参数,参数格式为:变量名 类型,如果有多个参数通过逗号分隔,不支持默认参数
    返回值类型:
  • 如果只有一个返回值且不声明名返回值变量,那么你可以省略,包括返回值的括号
  • 如果没有返回值,那么就直接省略最后的返回信息
  • 如果有返回值,那么必须在函数的内部添加return语句
    -6、 有参有返回值
package main
import "fmt"
func MaxAndMin(a,b int) (max,min int) {
	if a>b {
		max =a
		min =b
	}else{
		max =b
		min =a
	}
	return  //有返回值的函数,必须通过return
}
func main() {
	//通过匿名变量丢弃某个返回值  max ,_ := MaxAndMin(10,20)
	
	max ,min := MaxAndMin(10,20)
	fmt.Printf("max = %d,,min = %d",max,min)
}
  • 普通函数调用流程
    Go语言学习
package main

import "fmt"

func funnc(c int) {
	fmt.Println("c =",c)

}

func funnb(b int) {
	funnc(b-1)
	fmt.Println("b= ",b)

}
func funna(a int) {
	funnb(a-1)
	fmt.Println("a = ",a)
}
func main() {
	funna(3)
	fmt.Println("main执行了")
}

相关文章:

  • 2021-05-31
  • 2022-02-01
  • 2021-05-26
  • 2021-11-11
  • 2021-04-16
猜你喜欢
  • 2021-11-01
  • 2022-01-02
  • 2021-08-16
相关资源
相似解决方案