▎介绍
最近再学习golang gin框架的时候,发现gin框架在编译的时候可以通过tag决定使用某种 json 解析,如系统自带 encoding /json或者jsoniter来解析json。
具体编译方式是:
-
go build main.go 使用系统自带的encoding/json
-
go build -tag=jsoniter main.go 使用jsoniter库
翻看 源码 发现具体如下:
通过上面的两张图片可以发现package上面有一行注释:
// +build
▎学习
借此机会学习一下go build的用法和编译的时候如何设置规则:
-
到需要设置build的时,在文件的最顶端写上+build 标记,注意与package需要有一行空格
-
build可以使自定义规则 ‘xxxx’,如上面gin框架的jsoniter
-
build还有系统规则,如:
-
build多规则的使用,当以” “空格分隔则为或的关系,当以”,”分隔则为与的关系,
-
如果在规则名前加上”!”则表示非的关系
-
同时build也支持文件后缀选择编译规则,如源码中的注释:
▎总结
因此对于go build -tag在我们需要兼容或者多平台限制的限制时是一个很实用的方式,因此在这里介绍给大家。 其实在我们学习Go语言时阅读源码是我们一种最好的学习方式。一些愚见期待大家多提供意件。