小编典典

Error "can't load package: package my_prog: found packages my_prog and main"

go

在我的 GOPATH 中,我有这样的事情:

/bin/
/pkg/
/src/
/src/my_prog/
/src/my_prog/main.go
/src/my_prog/d_interface.go
/src/my_prog/d_struct_that_implements_the_interface.go

main.gopackage main,在d_interface.god_struct_that_implements_the_interface.go我有package my_prog

当我尝试时,go build my_prog出现以下错误:

can't load package: package my_prog: found packages my_prog (d_interface.go) and main (main.go) in C:\dev\Code\Go\src\my_prog

这是否意味着属于的任何文件都package main应该放在自己的文件夹中?如果是这样,原因是什么?


阅读 276

收藏
2021-12-21

共1个答案

小编典典

是的,每个包都必须在自己的目录中定义。

源结构在如何编写 Go 代码中定义。

包是一个组件,您可以在多个程序中使用它,您可以发布、导入、从 URL 获取等。因此,它拥有自己的目录是有意义的,就像程序可以拥有目录一样。

2021-12-21