Golang主包中的多个文件
我目前有一个名为main.go
主包中有一个文件。 如何将main.go
的内容main.go
成多个文件而不创build单独的包,因为代码是不可重用的。
我想要一个像这样的目录结构:
$ ls foo main.go bar.go
bar.go
package main import "fmt" func Bar() { fmt.Println("Bar") }
然后在main.go
package main func main() { Bar() }
上面的代码实际上工作。 问题是我需要运行
go run *.go
代替
go run main.go
如“ 如何编译由多个文件组成的Go程序? ”中所提到的那样, go run
期望得到一个文件列表,因为它“编译并运行包含指定的Go源文件的main
包”。
所以你当然可以拆分你的main
包在几个文件中go run
。
这不同于go build/go install
期望包名称(而不是去文件名)。
一个简单的go build
会产生一个以父文件夹命名的可执行文件。
请注意, 如此线程所示 , go run *.go
在Windows CMD会话中不起作用 ,因为shell不执行通配符扩展 。