go中如何清除执行缓存

当我使用标志包时


// 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


慕田峪7331174
浏览 126回答 1
1回答

MYYA

Go 是一种编译语言。当您运行时go build,它将编译您的源代码并创建一个可执行的二进制文件。这是您在执行时运行的内容./main doSomething1。当您更改源并运行时./main doSomething1,您不会再次编译,您只需运行之前构建的(且未更改的)二进制文件。要快速测试更改,请go run改用:go run main.go doSomething1这将始终编译您的源代码,在临时文件夹中构建二进制文件,启动它并在应用程序退出后清除它。
打开App,查看更多内容
随时随地看视频慕课网APP