在我的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.go中我有package main,在d_interface.go和d_struct_that_implements_the_interface.go我有包my_prog。
当我尝试去建立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
是的,每个包必须在其自己的目录中定义。
源结构在How to Write Go Code中定义。
包是一个可以在多个程序中使用的组件,您可以发布,导入,从URL获取等。因此,有一个程序可以有一个目录有自己的目录是有意义的。