Go语言笔记第一篇
语言特质
- 静态编译语言的性能(如C)
- 动态语言开发维护的效率(如Python)
指针使用特点
包概念
每个文件都要归属一个“包”。
自动垃圾回收
不容易内存泄漏
“天然”并发
- 从语言层面支持并发(goroutine)
- 基于CPS并发模型实现
管道(channel)通信机制
graph LR
A[goroutine] -- channel --- B[goroutine]
返回多值(函数)
切片(slice)
延时执行(defer)
意义
在函数执行完毕后,快速释放资源
执行到 defer
时,将其后语句压入 defer
栈中,暂时不执行,函数执行完毕后,按先入后出方式执行。
实践
// 文件IO
file=openfile(文件名)
defer file.close()
// 数据库链接
connect=openDatabase()
defer connect.close()