导入和未使用错误



我收到以下导入代码的错误:

代码:包装主

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导入包,而不是相对导入。

首先,不要使用相对导入。

如果您的GOPATH包含/Users/aaaa/IdeaProjects/app/src,则将您的包导入为api

接下来,您将使用对api :=的赋值来跟踪api。请使用其他名称。

如果.go文件发生错误,导致编译器无法到达使用该文件的位置,则可能发生此错误。

最新更新