golang学习04

本文详细介绍了Golang中的函数用法,包括基本语法、返回值处理(0个、多个及匿名),不支持重载,可变参数,值传递与指针的使用,以及defer关键字确保资源释放。还讨论了函数作为类型、自定义数据类型、init函数和闭包的概念。
摘要由CSDN通过智能技术生成

五、函数

函数基本语法:

func 函数名(形参列表)(返回值类型列表){

执行语句

return 返回值列表

}

1.

输出:

2.返回值可以是0个

输出:

3.返回值可以是多个

输出:

若我们只想要返回值中的一个,那么用_来匿名。

输出:

4.golang函数不支持重载(重载的意思就是函数名相同,形参列表不同)。

5.golang中支持可变参数,用...来表示。

输出:

6.基本数据类型和数组默认值传递,即进行值拷贝,在函数内部修改,不影响原来的值。

输出:

这是因为先执行main,当前mian中num1赋值为10,然后执行test函数,将test函数中num赋值为10,然后执行test函数中的num=30,此时num值变为30,即输出test-----30,执行完test函数,此test函数栈帧销毁,执行main函数中的输出,输出main---10。

7.以值传递方式的数据类型,如果希望在函数内部的变量修改函数外的变量,可以传入函数的地址&,函数内以指针方式操作,从效果来看类似引用传递。

输出:

  • 在go中函数也是一种类型,可以赋给一个变量,则该变量就是一个函数类型的变量了,通过该变量恶意进行函数调用。

输出:

8.既然函数是一种类型,那么函数也可以作为形参

输出:

9.自定义数据类型:起别名,同理函数类型也可以起别名。

输出:

10.支持对函数返回值命名

输出:

11.导包

输出:

如果导包有问题可以参照(30条消息) 真正解决golang中的package is not in GOROOT报错_牛顿就是牛的博客-CSDN博客

  • 同级别的源文件的包名必须一致。

  • 包名与文件夹名可以不一致,但推荐是一致的。

12.defer关键字

在函数中,程序员经常需要创建资源,为了在函数执行完毕后即使释放资源,go的设计者提供defer关键字。

输出:

13.init函数

init函数比main函数更早执行

14.匿名函数:即没有函数名

另一种形式:

输出:

14.闭包 = 函数 + 引用环境

输出:

输出:

输出:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值