go - 找不到嵌套包

标签 go gopath go-packages

我有一个具有以下结构的项目:

myapp/
  -services/
     -services/
         -exch.go
     -services.go
  -server.go

将 $GOPATH 设置为 /home/dev/dev/go 这就是 server.go 命名它的包和导入的方式:

//server.go
package main

import (
  "net/http"
  "github.com/labstack/echo"
  "myapp/services"
)

这是 services.go:

//services.go
package services

import (
  "fmt"
  "myapp/services/exch"
)

这是 exch.go:

//exch.go
package exch

import (
  "net/http"
  "fmt"
  "io/ioutil"
  "encoding/json
)

现在,server.go 可以正常导入 package services,但是 services.go 找不到 package exch。我尝试通过多种方式更改导入路径,但无法使其正常工作。我错过了什么吗?

知道/myapp 位于此处可能会有用:/home/dev/dev/go/src

最佳答案

每个包一个目录,每个目录一个包。如果 exch.go 应该被导入为 services/exch , 它需要在一个目录中 services/exch , 不在目录 services/services 中.

关于go - 找不到嵌套包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54096182/

相关文章:

xml - 一个简单的 xml 元素如何解码为 golang 结构?

go - GOPATH 和 GOROOT 的值应该是什么?

go - 使用 Go 模块在包中组织本地代码

go - 发布一个 golang 模块 : Semantic versioning

unit-testing - 如何覆盖 GOLANG 中的多个文件

pointers - 测试嵌套结构中的 nil 值

image - 在 Golang 中绘制两个半径的圆

pointers - 变量赋值和引用传递有什么区别?

go - 当没有定义 $GOPATH 时,如何查找安装了 'go get -u' 的 Go 包?

go env 显示 GOPATH 不匹配