1. 快速实现 Interface

  1. 光标移动到struct 名称上
    2. Alt/Option + Enter
    3. 选择Implement Interface … Control+I
    4. 搜索你需要实现的interface

2. 快速填充Struct

  1. 把你的光标放在{}中间
  2. Alt/Option + Enter
  3. 选择Fill Struct 或者 Fill Struct Recursively(递归填充)

3. 快速struct工厂方法

  1. 光标移动到struct 名称上
  2. Alt/Option + Enter
  3. Generate Constructor
  4. 选择属性

4. 快速生成TestCase文件

需要go get golang.org/x/tools/imports go get github.com/cweill/gotests支持

  1. 光标移动到Method/Function上
  2. Command/Control+Shift+T

5. live template

command + j (自带的代码生成模板)

6. 使用race检测数据竞争

Golang中我们使用Channel或者sync.Mutex等锁保护数据,有没有一种机制可以检测代码中的数据竞争呢? 数据竞争是并发情况下,存在多线程/协程读写相同数据的情况,必须存在至少一方写。另外,全是读的情况下是不存在数据竞争的。>

go run -race main.go

7. 高效率拼接字符串

  • strings.Builder (提供了预分配内存的方式)