VIM Go Syntastic:主要重新声明

use*_*545 11 vim go syntastic

VIM Syntastic插件适用于.go文件.但有时我想在同一个文件夹中有几个go文件,每个文件都有main()方法,这样我就可以使用go run xxx每个文件(用于演示).保存第二个文件(prog2.go)时,这将导致错误:

main redeclared in the block previous declaration at prog1.go

如何判断Syntastic忽略这些错误?

更新1

像Rob Pike的"Go Concurrency Patterns"和Francesc Campoy Flores的"Twelve Go Best Practices"这样的官方谈话都把源文件放在同一个文件夹中.所以这个问题不是关于运行go文件的最佳实践,而是如何抑制或忽略此警告.

更新2

之后,我提交的问题在这里,笔者清楚地回答我的问题.这正是我所需要的.谢谢大家.

eli*_*rar 23

你不能,因为这是一个真正的错误.

如果您.go在一个包中有多个文件(即package main),那么您只能拥有一个main()功能.

您应该使用go build将应用程序构建为可执行二进制文件.go run是测试单个文件的快速"黑客",而不是完整的程序.

你的选择:

  1. 将它们放在同一个包装中并使用go build.
  2. 将"程序"拆分为单独的包.例如$GOPATH/src/mypkg1$GOPATH/src/mypkg2
  3. 使用脚本语言.

我还建议阅读如何编写Go代码以了解如何管理包.