英文:
Go: How does go run file.go work
问题
go run
命令既不编译也不解释文件,它会编译并运行指定的 Go 源文件。当你使用 go run
命令时,它会在后台自动执行以下两个步骤:
- 首先,它会将指定的源文件编译为临时的可执行文件。
- 然后,它会立即运行该可执行文件。
这意味着 go run
命令会在运行之前自动编译源文件,并且不会在磁盘上生成任何可执行文件。希望这能帮到你!
英文:
The commands go build
and go install
compile the files into binaries. Does go run
compile or interpret the file? I couldn't find explanations online and may have missed it. Appreciate pointers. Thanks!
答案1
得分: 45
这句话的中文翻译是:这基本上相当于运行go build X.go -o /tmp/random-tmp-folder/exe && /tmp/random-tmp-folder/exe
。
英文:
It's more or less the equivalent of running go build X.go -o /tmp/random-tmp-folder/exe && /tmp/random-tmp-folder/exe
答案2
得分: 15
go run
命令编译并运行由命令行指定的.go文件组成的主包。该命令会被编译到一个临时文件夹中。
go build
和go install
命令会检查目录中的文件,以确定哪些.go文件包含在主包中。
英文:
The go run
command compiles and runs a main package comprised of the .go files specified on the command line. The command is compiled to a temporary folder.
The go build
and go install
examine the files in the directory to determine which .go files are included in the main package.
答案3
得分: 13
命令go run
在幕后执行项目的构建(是的,它构建项目)。
并且通过使用--work
标志(go run --work main.go
),您可以查看临时构建文件的位置。
此外,在官方文档(go1.11
)中,您可以找到以下信息:
go run
- 编译并运行指定的主要Go包。
go build
- 编译由导入路径指定的包及其依赖项,但不安装结果。
go install
- 编译并安装由导入路径指定的包。
英文:
Command go run
performs project's building under the hood (so yes it builds project)
<br>and with flag --work (go run --work main.go
) you can see the location of temporary build files.
Also in official documentation (go1.11
) you can find:
go run
- compiles and runs the named main Go package.
go build
- compiles the packages named by the import paths,
along with their dependencies, but it does not install the results.
go install
- compiles and installs the packages named by the import paths.
答案4
得分: 5
与Java不同,Go语言在执行时不会创建和解释字节码,而是创建一个依赖于所使用机器的可执行文件,类似于C、C++。
英文:
Unlike in java, where the bytcode is created and interpreted at the execution time, go creates an executable file that is dependent on the machine being used,like in c, c++.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论