我有一个Go程序,我想编译成一堆二进制文件,每个二进制文件都有一个不同定义的const
值。更清楚地说,我有这样的东西:
const wordLen = 6
type knowledge [wordLen]byte
字符串
在这里,wordLen
与值6相关联,但我希望有不同的二进制文件,其值范围从5到10。我可以将其设置为变量,然后使用切片而不是数组,但这将对我的软件产生巨大的性能影响(是的,我尝试过)。
我希望在go build
参数上有一些构建标记,以指示给定二进制文件的wordLen
的值。那么,如何(尽可能地道)做到这一点?
2条答案
按热度按时间hts6caw31#
是的,这可以使用建置条件约束来达成。
您可以使用
-tags
旗标,将这些条件约束的清单提供给go build
。范例:
主.go
字符串
去吧
型
酒吧.去吧
型
使用不同的标记编译代码将给予不同的结果:
型
ulmd4ohb2#
它并不能解决你的问题,但它可能解决其他问题,所以为了完整起见,我补充说,你可以使用go编译器的
-ldflags
选项:字符串
然而,它有两个缺点: