我遇到以下导入代码的错误:
代码: 包主
import (
"log"
"net/http"
"os"
"github.com/emicklei/go-restful"
"github.com/emicklei/go-restful/swagger"
"./api"
)
错误:
.\main.go:9: imported and not used: "_/c_/Users/aaaa/IdeaProjects/app/src/api"
鉴于我有 package api
并且文件存储在 api 文件夹下,是否存在导入不工作的原因?
我在下面使用 main.go 中的 api
func main() {
// to see what happens in the package, uncomment the following
restful.TraceLogger(log.New(os.Stdout, "[restful] ", log.LstdFlags|log.Lshortfile))
wsContainer := restful.NewContainer()
api := ApiResource{map[string]OxiResp{}}
api.registerLogin(wsContainer)
api.registerAccount(wsContainer)
api.registerLostLogin(wsContainer)
api.registerWallet(wsContainer)
}
最佳答案
编译器寻找包的实际使用情况 .. 而不是它存在的事实。
你需要使用那个包中的东西..或者删除导入。例如:
v := api.Something ...
如果您不在源文件中使用该包中的任何内容.. 您不需要导入它。也就是说,除非您希望 init
函数运行。在这种情况下,您可以使用忽略符号 import _
。
编辑:
更新后,您似乎正在覆盖此处的包导入:
api := ApiResource{map[string]OxiResp{}}
它声明了一个名为 api
的变量。现在编译器认为它是一个变量,所以你实际上并没有使用 api
包。你正在使用 api
变量。
您有几个选择。
首先,您可以将该变量命名为其他名称(可能是我会做的):
apiv := ApiResource{map[string]OxiResp{}}
或者,为您的导入添加别名(不是我会做的......但仍然是一个选项):
import (
// others here
api_package "./api"
)
问题是编译器对使用什么感到困惑。 api
包.. 或您声明的 api
变量。
您还应该通过 GOPATH
而不是 relatively 导入包。
关于go - 导入但未使用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25924749/