【Go编程基础】09-函数function
函数function
- Go 函数 不支持 嵌套、重载和默认参数
- 但支持以下特性:
- 无需声明原型、不定长度变参、多返回值、命名返回值参数
- 匿名函数、闭包
- 定义函数使用关键字 func,且左大括号不能另起一行
- 函数也可以作为一种类型使用
1 | package main |
1 | func main() { |
1 | func main() { |
1 | func main() { |
defer
- 执行方式类似其它语言中的析构函数,在函数体执行结束后按照调用顺序的相反顺序逐个执行
- 即使函数发生严重错误也会执行
- 支持匿名函数的调用
- 常用于资源清理、文件关闭、解锁以及记录时间等操作
- 通过与匿名函数配合可在return之后修改函数计算结果
- 如果函数体内某个变量作为defer时匿名函数的参数,则在定义defer时即已经获得了拷贝,否则则是引用某个变量的地址
- Go 没有异常机制,但有 panic/recover 模式来处理错误
- Panic 可以在任何地方引发,但recover只有在defer调用的函数中有效
1 | func main() { |
1 | func main() { |
1 | // i一直作为引用的方式进行传递,形成了一个闭包 |
1 | func main() { |
问题思考
运行以下程序并分析输出结果。
1 | func main() { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Clang's Blog!
评论