我有一個圍棋項目。當我運行該程序main.go(使用 function main)時,它為一個服務于 JSON 對象的網絡服務器提供服務。在同一個文件夾中,我有另一個文件serializedata.go(帶有函數main),它將 JSON 對象寫入由 Web 服務器提供的文件中?,F在,當我嘗試運行時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 關注
- 263 瀏覽
添加回答
舉報
0/150
提交
取消