我有一个Go项目。当我运行程序main.go
(具有功能main
)时,该程序将服务于提供JSON对象的Web服务器。
在同一文件夹中,我还有另一个文件serializedata.go
(具有功能main
),该文件将JSON对象写入由Web服务器提供服务的文件中。
现在,当我尝试运行go install
时,出现此错误:
./ serialize_data.go:17:在此块中先前重新声明了main 在./main.go:13
处声明
我想将这两个文件关联在一起。必须先对测试数据进行序列化,然后才能提供服务。
如何防止构建serialization.go
文件?
我来自python world,很容易将这些utils文件分开。
答案 0 :(得分:1)
serialize_data.go应该放置在另一个文件夹中,然后放置go run serialize_data.go
答案 1 :(得分:0)
在名为serialization.go
的主包中创建一个文件。但可以使用任何带有大写字母的exported
函数来更改函数main的名称,然后在main.go
文件内调用它。每个软件包只能有一个主文件。因此,如果要创建一个内部带有main()
函数的文件,请在另一个包中声明该文件。
例如,您的main.go
应该看起来像
package main
func main(){
Serialize()
}
内部serialization.go
文件用作
package main
func Serialize(){
fmt.Println("Serialize")
}
调用main内部的上述功能以在网络浏览器上投放
答案 2 :(得分:0)
虽然不是一个好主意,但是如果避免使用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