1. 快速实现 Interface
- 光标移动到struct 名称上
2. Alt/Option + Enter
3. 选择Implement Interface … Control+I
4. 搜索你需要实现的interface
2. 快速填充Struct
- 把你的光标放在
{}
中间 - Alt/Option + Enter
- 选择Fill Struct 或者 Fill Struct Recursively(递归填充)
3. 快速struct工厂方法
- 光标移动到struct 名称上
- Alt/Option + Enter
- Generate Constructor
- 选择属性
4. 快速生成TestCase文件
需要go get golang.org/x/tools/imports go get github.com/cweill/gotests支持
- 光标移动到Method/Function上
- Command/Control+Shift+T
5. live template
command + j (自带的代码生成模板)
6. 使用race检测数据竞争
Golang中我们使用Channel或者sync.Mutex等锁保护数据,有没有一种机制可以检测代码中的数据竞争呢?
数据竞争是并发情况下,存在多线程/协程读写相同数据的情况,必须存在至少一方写。另外,全是读的情况下是不存在数据竞争的。>
go run -race main.go
7. 高效率拼接字符串
- strings.Builder (提供了预分配内存的方式)