猿问

Go项目中的多个主文件

我有一个围棋项目。当我运行该程序main.go(使用 function main)时,它为一个服务于 JSON 对象的网络服务器提供服务。

在同一个文件夹中,我有另一个文件serializedata.go(带有函数main),它将 JSON 对象写入由 Web 服务器提供的文件中。

现在,当我尝试运行时go install出现此错误:

./serialize_data.go:17: 在此块中重新声明 main 先前在 ./main.go:13 的声明

我想将这两个文件放在一起,因为它们是相关的。测试数据需要序列化才能提供。

如何防止构建serialization.go文件?

我来自 python 世界,很容易单独拥有这些 utils 文件。


蝴蝶刀刀
浏览 277回答 3
3回答

蝴蝶不菲

在主包中创建一个名为serialization.go. exported但是用大写字母的任何函数更改函数 main 的名称,然后在main.go文件中调用它。每个包只能有一个主文件。因此,如果你想创建一个包含main()函数的文件,它会在另一个包中声明。例如你main.go应该看起来像。package mainfunc main(){    Serialize()}内部serialization.go文件用作package mainfunc Serialize(){   fmt.Println("Serialize")}在 main 中调用上述函数以在网络浏览器上提供服务

30秒到达战场

虽然这不一定是个好主意,但如果你避免的话,go install你可以从同一个文件夹中构建多个可执行文件就好了。我的一个项目有一个tools包含多个可执行文件的文件夹,我使用go build. 例如:$ lsMakefile cat.go find.go ls.go$ cat Makefile%: %.go&nbsp; &nbsp; go build -o $@ $<$ make lsgo build -o ls ls.go$ ./lsMakefile cat.go find.go ls.go

互换的青春

serialize_data.go 应该放在另一个文件夹中,然后go run serialize_data.go
随时随地看视频慕课网APP

相关分类

Go
我要回答