go - 导入但未使用错误

标签 go

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

代码: 包主

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/

相关文章:

用于实现 RTSP 客户端的 Golang 库

json - 为什么我无法解析带有 Unmarshal 嵌套数组的 json

golang - 如果代码没有改变,重用以前构建的可执行文件

go - 有没有办法一次构建多个基于 Go 模块的项目?

struct - 星号(* struct)符号在golang中是什么意思

arrays - SQL 选择查询的循环结果

go - MarshalBinary time.Time : predicting its byte-size

regex - Golang 正则表达式在字符串之间替换

go - 计算 Golang 产品中事件的出现次数

go - Go的selectnbrecv函数到底做什么?