当我使用标志包时// main.goimport ( ... "flag" )func main() { ... flag.Parse() switch flag.Arg(0) { case "doSomething1": ... case "doSomething2": ... }}如果 doSomething1 参数为我打印一些错误消息,无论我修复源代码,它都无法删除旧的错误代码并再次编译。// command-line# go build ./main.go# ./main doSomething1# error doSomething1 can not work-- I fix my code# ./main doSomething1# error doSomething1 can not work-- the error message also show me again-- I have to delete main and build again# rm ./main# go build ./main.go# ./main.go doSomething1# doSomething1 now can work
1 回答
MYYA
TA贡献1868条经验 获得超4个赞
Go 是一种编译语言。当您运行时go build
,它将编译您的源代码并创建一个可执行的二进制文件。这是您在执行时运行的内容./main doSomething1
。
当您更改源并运行时./main doSomething1
,您不会再次编译,您只需运行之前构建的(且未更改的)二进制文件。
要快速测试更改,请go run
改用:
go run main.go doSomething1
这将始终编译您的源代码,在临时文件夹中构建二进制文件,启动它并在应用程序退出后清除它。
- 1 回答
- 0 关注
- 185 浏览
添加回答
举报
0/150
提交
取消