如何在go中清除执行缓存
当我使用flag包时如何在go中清除执行缓存,go,Go,当我使用flag包时 // main.go import ( ... "flag" ) func main() { ... flag.Parse() switch flag.Arg(0) { case "doSomething1": ... case "doSomething2": ... } } 如果doSomething1参数为我打印了一些错误消息,无论我如何修复源代码,它都无法删除旧的错误代码并重新编译 // command-l
// main.go
import (
...
"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
围棋是一种游戏。当您运行go build
时,它将编译您的源代码并创建一个可执行二进制文件。这是执行/main doSomething1
时运行的
当您更改源代码并运行/main doSomething1
时,您不会再次编译,您只需运行先前构建(且未更改)的二进制文件
要快速测试更改,请改用go run
:
go run main.go doSomething1
这将始终编译您的源代码,在临时文件夹中构建二进制文件,启动它,并在您的应用程序退出后清除它
有关详细信息,请参见如果不重新生成,则调用使用旧代码生成的二进制文件。在重新生成二进制文件之前,更改源不会对其产生影响。