为了账号安全,请及时绑定邮箱和手机立即绑定

Go项目中的多个主文件

Go项目中的多个主文件

Go
蝴蝶刀刀 2023-03-21 15:14:26
我有一个围棋项目。当我运行该程序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 中调用上述函数以在网络浏览器上提供服务


查看完整回答
反对 回复 2023-03-21
?
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


查看完整回答
反对 回复 2023-03-21
?
互换的青春

TA贡献1797条经验 获得超6个赞

serialize_data.go 应该放在另一个文件夹中,然后go run serialize_data.go



查看完整回答
反对 回复 2023-03-21
  • 3 回答
  • 0 关注
  • 275 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号