我有一个围棋项目。当我运行该程序main.go(使用 function main)时,它为一个服务于 JSON 对象的网络服务器提供服务。在同一个文件夹中,我有另一个文件serializedata.go(带有函数main),它将 JSON 对象写入由 Web 服务器提供的文件中。现在,当我尝试运行时go install出现此错误:./serialize_data.go:17: 在此块中重新声明 main 先前在 ./main.go:13 的声明我想将这两个文件放在一起,因为它们是相关的。测试数据需要序列化才能提供。如何防止构建serialization.go文件?我来自 python 世界,很容易单独拥有这些 utils 文件。
3 回答

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

30秒到达战场
TA贡献1828条经验 获得超6个赞
虽然这不一定是个好主意,但如果你避免的话,go install你可以从同一个文件夹中构建多个可执行文件就好了。我的一个项目有一个tools包含多个可执行文件的文件夹,我使用go build. 例如:
$ ls
Makefile cat.go find.go ls.go
$ cat Makefile
%: %.go
go build -o $@ $<
$ make ls
go build -o ls ls.go
$ ./ls
Makefile cat.go find.go ls.go
- 3 回答
- 0 关注
- 275 浏览
添加回答
举报
0/150
提交
取消