gpt4 book ai didi

go - 将 .go-file 作为附加参数传递给 `go run`

转载 作者:IT王子 更新时间:2023-10-29 01:27:37 26 4
gpt4 key购买 nike

为了快速破解,我更喜欢使用 go run prog.go ... 而不是先构建可执行文件。但是,我正在处理的程序应该将另一个 go-file 作为参数。因此,go run 和编译后的二进制文件表现不同:

go run prog.go foo.go

将尝试执行两个 go 文件,而

go build prog.go && ./prog foo.go

将正确地将我的文件作为输入(预期行为)。现在我可以像这样传递额外的参数 go run ... -- foo.go,但是由于 -- 文件的位置在 中不同os.Argsgo run prog.go -- foo.go./prog foo.go 之间。任何简单的解决方案?我想避免进行完整的标志处理。我应该放弃并坚持编译版本吗?

最佳答案

这是不可能的。这是 source对于命令:

for i < len(args) && strings.HasSuffix(args[i], ".go") {
i++
}
files, cmdArgs := args[:i], args[i:]

您可以使用go install 而不是go build。这会将您的可执行文件放入您的 $GOPATH/bin 文件夹中(我不喜欢将二进制文件放在同一文件夹中,因为有时我会不小心将它添加到 git 中)。但实际上并没有太大的不同。

您可能要考虑的另一个选项是 rerun .每当您更改文件时,它都会自动重新编译并运行您的代码:

rerun path/to/your/project foo.go

关于go - 将 .go-file 作为附加参数传递给 `go run`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30102822/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com