Go语言有一个不(奇)错(葩)的设计,就是build constraints(构建约束).可以在源码中通过注释的方式指定编译选项,比如只允许在linux下,或者在386的平台上编译啊之类的:还可以通过文件名来约束构造,比如xxxx_linux.go,就是只允许在linux下编译,xxx_windows_amd64.go就是只允许在windows x64下编译. 构建约束可以在很多文件中使用,不单单是GO文件.但是必须要注意的是,通过注释实施构建约束的话,比如要放在文件的开头,要优先于空行或和其他