我收到以下导入代码出现错误:
代码:包主
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文件夹下,因此导入不起作用是有原因的吗?
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 _。
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