【Golang】goimport格式规范
2018-02-20 本文已影响9人
qishuai
go import格式规范
对于go import的格式容易被忽略,但是标准的import会让代码阅读者一目了然。import的格式要求是将标准库、当前工程包、golang官方包、初始化包和github.com仓库的引入进行分类、排序,在不容分类间使用空行进行区分。
在goland和IDEA软件中,已经为我们集成了自动化选项。这里介绍一下:
- 找到软件的首选项,Mac下直接按
command + ,
进入。在window平台下,先进入首选项,在搜索栏输入imports即可找到。按照图片的选项选择即可
- 看一下区别,修改前:
import (
"path/filepath"
"bytes"
"fmt"
"github.com/btcboost/copernicus/orm"
"strconv"
"golang.org/x/text/currency"
_ "github.com/go-sql-driver/mysql"
"github.com/btcboost/copernicus/orm/database"
"github.com/btcboost/copernicus/conf"
)
修改后
import (
"bytes"
"fmt"
"path/filepath"
"strconv"
"golang.org/x/text/currency"
_ "github.com/go-sql-driver/mysql"
"github.com/btcboost/copernicus/conf"
"github.com/btcboost/copernicus/orm"
"github.com/btcboost/copernicus/orm/database"
)
小技巧: 如果我们当前项目的import已经是乱成一团,那么通过手动格式化将是灾难性的。小技巧来了,将import代码块部分或全部注释,然后保存command + s, 格式就自动调整了(对于gopath中存在重名的包引入,要注意其引入的正确性)。
有人会说这也没什么区别呀,但是如果一个文件中引入了大量的包,各种类型的包都有,那对于代码阅读者将是灾难。另外对于一个项目,如果保持go import格式统一,不光代码美观,还能体现一个团队对于细节的追求。