VIM Syntastic plugin works well with .go file. But sometimes I want to have several go files in the same folder, and each with the main() method, so that I can go run xxx
each file(for presentation). This will cause the error when I save the second file(prog2.go):
main redeclared in the block previous declaration at prog1.go
How can I tell Syntastic to ignore these errors?
Update 1
The official go talks like Rob Pike's "Go Concurrency Patterns" and Francesc Campoy Flores' "Twelve Go Best Practices" all put the source file in the same folder. So this question is not about the best practice to run go file, but how to suppress or ignore this warning.
Update 2
After I file an issue here, the author answered my question clearly. That's just what I needed. Thanks for all.
You cannot, because it's a genuine error.
If you have multiple .go
files in a single package (i.e. package main
) then you can only have one main()
function.
You should be using go build
to build your application into an executable binary. go run
is a quick 'hack' for testing single files, not for complete programs.
Your options:
go build
.$GOPATH/src/mypkg1
and $GOPATH/src/mypkg2
I'd also suggest reading How To Write Go Code for how to manage packages.
The reason is, There can be only one main function in a package.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With