GO语言学习笔记(七、function)

函数function

Go函数不支持嵌套、重载和默认参数

但支持以下特性:

无需声明原型、不定长度变参、多返回值、命名返回值参数、匿名函数、闭包

定义函数使用关键字func,且左大括号不能另起一行

函数也可以作为一种类型使用

闭包

GO语言学习笔记(七、function)

GO语言学习笔记(七、function)

defer

defer的执行方式类似其它语言中的析构函数,在函数体执行结束后按照调用顺序的相反顺序逐个执行

即使函数发生严重错误也会执行

支持匿名函数的调用

常用于资源管理、文件关闭、解锁以及记录时间等操作

通过与匿名函数配合可在return之后修改函数计算结果

如果函数体内某个变量作为defer时匿名函数的参数,则在定义defer时即已经获得了拷贝,否则则是引用某个变量的地址

Go没有异常机制,但有panic/recover模式来处理错误

Panic可以在任何地方引发,但recover只有在defer调用的函数中有效

GO语言学习笔记(七、function)

GO语言学习笔记(七、function)

GO语言学习笔记(七、function)GO语言学习笔记(七、function) 老蒋的程序人生 发布了19 篇原创文章 · 获赞 5 · 访问量 3万+ 私信 关注
上一篇:go defer


下一篇:Go每日一题(1)