Go

时间:2017-08-29 06:51:01

标签: go import path

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

我正在为Java Collections界面建模。这是我的文件结构

+/$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我正在尝试使用Collection中的Collections.go界面

如何导入所需的包以访问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

1 个答案:

答案 0 :(得分:2)

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

import "github.com/user/collections"

当涉及到结构时,这一切都取决于包的类型,我不知道Java集合足以在这种特定情况下提供建议。

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

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