VS Code:Go - main 在该块中重新声明

San*_*ran 6 go visual-studio-code

VS code 中弹出此警告/问题;

main 在此块中重新声明 编译器(DuplicateDecl) <我的目录中的另一个 Go 文件名> main 的其他声明

我将所有 Go 练习文件都放在一个目录中,每个文件都有一个 func main() 块。

有人熟悉这个警告吗?如果是这样我该如何解决。

但是,即使我收到这个错误..或者无论你怎么称呼它..

我仍然可以在终端中运行 Go 代码并查看我的输入/输出,没有任何错误。

Adr*_*ian 19

将它们分离到各自的目录中是唯一的解决方案。

在Go中,一个目录就是一个包,一个包只能有一个给定名称的函数(除了init(),这是一种特殊情况)。您认为.go目录中的所有文件都是独立的,但 Go 不是;它看到一个包,并且该包声明了多个名为 的函数main,这是不允许的。


San*_*ran 1

最终,我通过为每个 Go 文件创建一个目录解决了这个问题。

我知道这不是这个问题的完美解决方案。

如果有人知道一些事情,请与我们分享。

  • “我知道这不是这个问题的完美解决方案。” ——不,这是完美的解决方案。事实上,这是唯一的解决方案。 (5认同)