go run
命令會編譯源碼,並且直接執行源碼的 main() 函數,不會在當前目錄留下可執行文件。
下面我們准備一個 main.go 的文件來觀察go run
的運行結果,源碼如下:
- package main
- import (
- "fmt"
- "os"
- )
- func main() {
- fmt.Println("args:", os.Args)
- }
這段代碼的功能是將輸入的參數打印出來。使用go run
運行這個源碼文件,命令如下:
$ go run main.go --filename xxx.go
args: [/tmp/go-build006874658/command-line-arguments/_obj/exe/main--filename xxx.go]
go run
不會在運行目錄下生成任何文件,可執行文件被放在臨時文件中被執行,工作目錄被設置為當前目錄。在go run
的后部可以添加參數,這部分參數會作為代碼可以接受的命令行輸入提供給程序。go run
不能使用“go run+包”的方式進行編譯,如需快速編譯運行包,需要使用如下步驟來代替:
- 使用
go build
生成可執行文件。 - 運行可執行文件。