我有3个文件。一个和两个额外的~are~应该根据构建约束来构建。两者都从 期间更新全局变量。 是mainnormalgokrazymaininit()normal// +build !gokrazypackage mainimport "fmt"func init() { foo = "normal" fmt.Println("init:", foo)}另一个是:gokrazy// +build gokrazypackage mainimport "fmt"func init() { foo = "gokrazy" fmt.Println("init:", foo)}go vet *.go很开心。当我运行时,我看到两个初始化函数都被调用:go run *.goinit: gokrazyinit: normal我以为只有一个人被叫到。 确认选择了预期的文件,但是我仍然看到两个init函数。Golang Build Constraints Random解释说,强制编译可能是必要的,但这不会改变结果:go list❯ go list -f '{{.GoFiles}}' -tags=gokrazy -a && go run -tags=gokrazy -a *.go[gokrazy.go main.go]init: gokrazyinit: normal为什么负构建标记不起作用?!gokrazy
- 2 回答
- 0 关注
- 103 浏览
添加回答
举报
0/150
提交
取消