首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导入且未使用错误

导入且未使用错误
EN

Stack Overflow用户
提问于 2014-09-19 09:00:17
回答 3查看 10.7K关注 0票数 5

我用下面的导入代码得到了下面的错误:

代码: package main

代码语言:javascript
复制
import (
    "log"
    "net/http"
    "os"
    "github.com/emicklei/go-restful"
    "github.com/emicklei/go-restful/swagger"
    "./api"
)

错误:

代码语言:javascript
复制
.\main.go:9: imported and not used: "_/c_/Users/aaaa/IdeaProjects/app/src/api"

如果我在api文件夹下存放了package api和文件,为什么导入不起作用?

我正在使用下面的代码在main.go中使用api

代码语言:javascript
复制
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)
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-09-19 09:06:24

编译器查找包的实际使用情况。而不是它存在的事实。

你需要用那个包里的东西..或者删除导入。例如:

代码语言:javascript
复制
v := api.Something ...

如果您没有使用源文件中包中任何内容..您不需要导入它。也就是说,除非您希望运行init函数。在这种情况下,您可以使用忽略符号import _

编辑:

在您的更新之后,看起来您正在覆盖这里的包导入:

代码语言:javascript
复制
api := ApiResource{map[string]OxiResp{}}

它声明了一个名为api的变量。现在编译器认为它是一个变量,所以您实际上并没有使用api包。您使用的是api变量。

你有几个选择。

首先,您可以将该变量命名为其他名称(可能我也会这样做):

代码语言:javascript
复制
apiv := ApiResource{map[string]OxiResp{}}

或者,为您的导入设置别名(不是我会做的..但这仍然是一个选择):

代码语言:javascript
复制
import (
    // others here
    api_package "./api"
)

问题是编译器对使用什么感到困惑。api包..或已声明的api变量。

您还应该通过GOPATH导入包,而不是相对导入。

票数 6
EN

Stack Overflow用户

发布于 2014-09-19 09:50:03

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

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

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

票数 1
EN

Stack Overflow用户

发布于 2021-09-10 16:38:34

如果您的.go文件包含阻止编译器到达使用它的位置的错误,则会发生此错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25924749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档