我目前有3个文件,它们都有package main在顶部。
GOPATH/src/example.com/myweb/main.go
GOPATH/src/example.com/myweb/api.go
GOPATH/src/example.com/myweb/viewmodels/home.go当我编译时,我得到了这个错误:
./main.go:21: undefined: Home
./main.go:39: api.Home undefined (type API has no field or method Home)我正在使用以下命令进行编译:
go build如果我这样做:
go build main.go api.go viewmodels/home.go它说没有这样的文件或目录,然后是一个不存在的文件的路径:
GOPATH/src/example.com/myweb/viewmodels.main.go如果我使用的是package main,这应该只适用于go build吗?
发布于 2016-04-18 17:48:34
您不能在一个目录中混合两个不同的包。每个目录都有自己的包。
go文档(请参阅:golang.org/doc/code.html)说明了以下与您的情况相关的包:
您的问题的解决方案是:
适用于$GOPATH/src/example.com/myweb/viewmodels/home.go
package viewmodels的package main适用于$GOPATH/src/example.com/myweb/main.go和$GOPATH/src/example.com/myweb/api.goimport "example.com/myweb/viewmodels"的文件使用viewmodels软件包(例如main.go、api.go)您的项目将如下所示:

https://stackoverflow.com/questions/36681089
复制相似问题