我在主包中有一个名为main.go的文件。因为代码是不可重用的,我想在不同的文件中分离代码的一部分,但在同一个包中。

如何分割main的内容。进入多个文件而不创建一个单独的包?

我想要一个这样的目录结构:

ls foo

# output:
main.go
bar.go

文件:bar.go

package main

import "fmt"

func Bar() {
  fmt.Println("Bar")
}

文件:main.go

package main

func main() {
  Bar()
}

当我跑去跑主。Go,它会给我:

# command-line-arguments
./main.go:4:2: undefined: Bar

当前回答

如前所述,你可以说go run *。go,但是对于Windows,你可以只列出脚本文件(因为*. .去也没用)-去主站。去其他。去third.go

其他回答

如前所述,你可以说go run *。go,但是对于Windows,你可以只列出脚本文件(因为*. .去也没用)-去主站。去其他。去third.go

多个选项

去跑步吧。 快跑,快跑 使用Makefile在其中运行,添加任何上述命令作为构建目标。

用于测试

去测试一下。 使用Makefile和go test进行测试。作为构建目标

对于Windows,安装Cygwin并使用它代替命令提示符。“快跑。”“Go”就行了。

第一种方法是运行

go run *.go

另一种方法是生成一个exe文件

go build

然后运行。exe文件

./filename.exe

在我看来,这个问题最好的答案就藏在对顶部答案的评论中。

运行这个:

go run .

这将运行主包中的所有文件,但不会给出错误消息

go run: cannot run *_test.go files (main_test.go)

向@BarthesSimpson致敬