如果main
包中有多个.go文件,我需要在执行go run
时全部列出。
所以当我有main.go
,a.go
,b.go
并且它们都属于主包时,我需要输入go run main.go a.go b.go
才能使用里面的函数和结构其他2个去文件。但是,go build
命令足够智能,可以自动将所有文件链接在一起。
我是否误解了有关Go的内容,或者这是否正常(在执行main
时列出go run
包中的所有文件)?
答案 0 :(得分:4)
简短的回答是:你需要全部列出来。如果你绝望的话,你可以用shell技巧来做到这一点。我通常只是编写一个shell脚本到go build
然后运行生成的可执行文件,因为它太烦人了。
# this works unless you have _test.go files
go run *.go
# if you really want to... enable extended glob
shopt -s extglob
# so you can do something like this (matches all .go except *_test.go files)
go run !(*_test).go
查看此主题:https://groups.google.com/forum/#!topic/golang-nuts/EOi0VAQNA4c
答案 1 :(得分:2)
如果您的来源是$ GOPATH / src 如在
$GOPATH/src/somedir/main.go
$GOPATH/src/somedir/a.go
$GOPATH/src/somedir/b.go
做“go install somedir”将编译并安装somedir二进制文件到$ GOPATH / bin
无需单独列出文件
“go install”会找到它自己的所有文件。
我的常见工作周期是go(来自我的bash提示符): $ clear;去安装myproj&& $ GOPATH / bin中/的Myproj
,清除屏幕,构建并安装“myproj”,然后运行它
所以,在我更改代码后,我只需按Ctrl-C,向上箭头,然后输入。
整个循环时间约为1秒(小型启动时间)