Go学习笔记(10)Go函数

文章目录Go函数Go函数定义函数值传递与引用传递Go函数的各种使用形式匿名函数defer 函数Go函数    函数是基本的代码块,它的作用是可以将实现某个功能的多行代码封装到一段代码块中(即函数),在需要的时候去调用。同个函数可以被多次调用,实现代码重用。     函数一般会有参数和返回值(也可以没有),函数名称、函数参数、函数返回值以及它们的类型被统称为函数签名     在Go语言中,函数有以下一些特点:支持不定长变参、多返回值、命名返回值参数支持匿名函数、闭包函数可以作为一种类型使用G
摘要由CSDN通过智能技术生成

Go函数

    函数是基本的代码块,它的作用是可以将实现某个功能的多行代码封装到一段代码块中(即函数),在需要的时候去调用。同个函数可以被多次调用,实现代码重用。
     函数一般会有参数和返回值(也可以没有),函数名称、函数参数、函数返回值以及它们的类型被统称为函数签名
     在Go语言中,函数有以下一些特点:

  • 支持不定长变参、多返回值、命名返回值参数
  • 支持匿名函数、闭包
  • 函数可以作为一种类型使用
  • Go函数不支持嵌套、重载

Go函数定义

    Go函数定义格式如下:

func function_name ([parameter list]) [return_type]{
   
	函数体
}
  • 由关键字func开始声明定义函数
  • parameter list:参数列表,一般格式为 param1 type1, param2 type2...
  • return_type:返回值类型,这里可以只写返回值类型,也可以为返回值命名(即支持命名返回值参数的写法:ret1 type1

函数值传递与引用传递

    Go函数被调用的时候,传入的参数会被复制然后传递到函数内部使用,即函数体中使用的是参数副本。这种方式也称之为值传递

  • 值传递:即传递参数副本。函数接收参数副本之后,在使用变量的过程中可能对副本的值进行更改,但不会影响到原来的变量
  • 引用传递:如果希望在函数内对原始的参数进行直接修改,需要将参数的地址(变量名前加&符号)作为输入参数传递给函数(即引用传递)。此时传递的是地址的副本,但地址副本指向位置还是原来变量的位置,因此可以通过该指针来修改原来的变量。如果传递的是slicemap这类引用类型,它们默认都是采用引用传递

Go函数的各种使用形式

  • 函数返回多个值,在声明中在输入参数后面指定返回值的类型(用括号括起来),函数结束时return多个返回值
func main(){
   
	r1, r2 := A(1, "A")
}

func A(a int, b string) (int, string) {
   
	c := a + 1
	d := b + "aa"
	return c, d
}
  • 多个参数如果类型相同,可以合并写法,单个返回值可以不写括号
func main(){
   
	r3 := B(1, 2, 3)
}
func B(a, b, c int) int {
   
	return a + b + c
}
  • 命名返回值写法,使用这种形式,返回值的名称已经在声明中定义,不需要在函数体内定义,return后面也可以不写上返回值的名称,默认会返回函数声明中那几个命名的返回值
func main(){
   
	r4, r5, r6 := C()
}
func C
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值