我正在尝试在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
答案 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