【问题标题】:Import package Path issues in GoGo 中的导入包路径问题
【发布时间】:2017-08-29 06:51:00
【问题描述】:

我正在尝试在 Go 中构建一个集合包,但我遇到了导入路径问题。

我正在为 Java 集合接口建模。这是我的文件结构

+/$GOPATH
    /bin  
    /pkg  
    /src  
        /github.com
            /user
               /collections
                   collections.go
                   main.go
                  /collections
                      /bstAvl
                         bstAvl.go

我的 collections.go 文件如下所示:

package collections

type Collection interface {
    Add(interface{}) (bool, error)
    AddAll(Collection) (bool, error)
    Clear()
    Contains(interface{}) (bool, error)
    Remove(interface{}) (bool, error)
    Size() uint
}

bstAvl.go 中,我尝试在Collections.go 中使用Collection 接口

如何导入需要的包来访问Collection接口?

我认为我在路径上做得太过火了,可能使它变得比应有的复杂。您推荐更简单的结构吗?

理想情况下,我希望我的所有收藏都在 collections 包下,以便可以将其导出为库并在需要时用于其他应用程序。

P.S 我读过Structuring applications in Go by Ben Johnson。但我仍然很困惑。非常感谢任何帮助。

编辑: 我想我过度使用了包结构。我决定坚持这个:

+/$GOPATH
    /bin  
    /pkg  
    /src  
        /github.com
            /user
               /collections
                   collections.go
                   main.go
                   bstAvl.go

【问题讨论】:

    标签: go import path


    【解决方案1】:

    要在 bstAvl.go 中导入 collections,请使用完整路径:

    import "github.com/user/collections"
    

    说到结构,这完全取决于包的类型,我对 Java 集合的了解还不够,无法在这种特定情况下提供建议。

    但是,为了避免重复 collections/collections,我建议将 bstAvl 文件夹直接放在初始 collections 文件夹下:

    +/$GOPATH
        /bin  
        /pkg  
        /src  
            /github.com
                /user
                   /collections
                       collections.go
                       main.go
                       /bstAvl
                          bstAvl.go
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多