Go子包函数未正确导入

Go子包函数未正确导入,go,Go,试图在Golang把我的头缠在包裹上 这是我的工作区 /bin /pkg /src /github.com /esbenp /testrepo /subpackage somefuncs.go main.go 梅因,加油 去吧 我的印象是,由于Somefunc以大写字母开头,它将被导出以在导入它的其他文件中使用。我在控制台中得到的输出是 main.go:4: imported and not used: "github

试图在Golang把我的头缠在包裹上

这是我的工作区

/bin
/pkg
/src
  /github.com
    /esbenp
      /testrepo
        /subpackage
          somefuncs.go
        main.go
梅因,加油

去吧

我的印象是,由于Somefunc以大写字母开头,它将被导出以在导入它的其他文件中使用。我在控制台中得到的输出是

main.go:4: imported and not used: "github.com/esbenp/testrepo/subpackage"
main.go:8: undefined: Somefunc

有人能给我指出正确的方向吗?

当您导入一个包时,它将以其名称提供

要想在你的主页上找到某个功能,你必须做什么


subpackage.Somefunc

您必须以所属包的名称作为函数的前缀:subpackage.Somefunc

如果您有多个子包具有相同的名称,则在导入它们时必须对其进行别名,否则会发生冲突:

import (
    xapi "x/xx/xxx/api"
    yapi "y/yy/yyy/api"
)

不要称之为分装,甚至精神上也不要。没有真正的子包概念。包必须位于某个地方,并且这些目录嵌套在文件系统中。但是这种文件系统嵌套对于如何使用、导入和访问包没有任何意义。挑剔:go工具处理一些文件系统文件夹,如vendor、internal或testdata special,并且有子包的概念。
main.go:4: imported and not used: "github.com/esbenp/testrepo/subpackage"
main.go:8: undefined: Somefunc
import (
    xapi "x/xx/xxx/api"
    yapi "y/yy/yyy/api"
)