避免在“go run”-ng时键入主包中的所有go文件

避免在“go run”-ng时键入主包中的所有go文件,go,Go,当一个主包中有多个.go文件时,我需要在运行go时将它们全部列出 因此,当我有main.go、a.go、b.go并且它们都属于主包时,我需要键入go run main.go a.go b.go,以便在其他两个go文件中使用函数和结构。然而,go build命令足够智能,可以自动将所有文件链接在一起 我是否误解了Go,或者在运行Go时列出主包中的所有文件是正常的吗?简短的回答是:您需要列出所有文件。如果你绝望的话,你可以用贝壳戏法来做到这一点。我通常只是编写一个shell脚本来构建,然后运行生成的

当一个主包中有多个.go文件时,我需要在运行go时将它们全部列出

因此,当我有main.go、a.go、b.go并且它们都属于主包时,我需要键入go run main.go a.go b.go,以便在其他两个go文件中使用函数和结构。然而,go build命令足够智能,可以自动将所有文件链接在一起


我是否误解了Go,或者在运行Go时列出主包中的所有文件是正常的吗?

简短的回答是:您需要列出所有文件。如果你绝望的话,你可以用贝壳戏法来做到这一点。我通常只是编写一个shell脚本来构建,然后运行生成的可执行文件,在它变得太烦人之后

# 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

查看此线程:

简短的回答是:您需要将它们全部列出。如果你绝望的话,你可以用贝壳戏法来做到这一点。我通常只是编写一个shell脚本来构建,然后运行生成的可执行文件,在它变得太烦人之后

# 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

检查此线程:

如果源代码位于$GOPATH/src中 如

doing go install somedir将编译somedir二进制文件并将其安装到$GOPATH/bin中

无需单独列出文件

go install会自行查找所有文件

我与go的共同工作周期来自我的bash提示符: $clear;转到安装myproj&$GOPATH/bin/myproj

它将清除屏幕,构建并安装myproj,然后运行它

所以,在我更改代码后,我只需按Ctrl-C,向上箭头,然后回车


如果您的源代码位于$GOPATH/src中,则整个循环时间约为1秒,用于小批量启动 如

doing go install somedir将编译somedir二进制文件并将其安装到$GOPATH/bin中

无需单独列出文件

go install会自行查找所有文件

我与go的共同工作周期来自我的bash提示符: $clear;转到安装myproj&$GOPATH/bin/myproj

它将清除屏幕,构建并安装myproj,然后运行它

所以,在我更改代码后,我只需按Ctrl-C,向上箭头,然后回车


整个循环时间约为1秒,small开始工作

但他问的是go run。好的一点,我只是做了一个错误的假设,他不知道如何在go中生成可运行的二进制文件,这是我在学习goyeah时最初遇到的难题。是的,我通常编写一个名为run.sh的脚本,该脚本与您的脚本类似;通常我使用go build来进行本地构建,而不是go install。不过,他问的是go run。好的一点,我只是做了一个错误的假设,他不知道如何在go中生成可运行的二进制文件,这是我在学习go时最初遇到的难题。是的,我通常编写一个名为run.sh的脚本,它的功能与您的类似;通常我使用go build进行本地构建,而不是go install。