python语言可以在不输出二进制可执行文件情况下,使用虚拟机直接执行源文件。go语言没有虚拟机,但使用go run
可以达到同样效果。go run
会编译go源码,直接执行go源码中的main()函数,不在当前目录下输出任何可执行文件。使用go run main.go
运行下面代码。
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("args:", os.Args)
}
观察运行结果
# go run main.go --input-file file.go
args: [/var/folders/bs/2knm7k8d6357gsyc57n4c0rw0000gn/T/go-build511211141/b0
01/exe/main -a 1]
-
go run不会在当前目录生成任何可执行文件,可执行文件被放在临时文件中被执行
-
可以在go run后面添加参数,这部分作为代码可接受的命令行参数提供给go程序
-
不能使用使用
go run 包名
的方式进行编译后运行,可以换用go build 包名
的方式生成可执行文件,然后运行可执行文件