在 Golang 中使用库

首先,要明确的是,我来自 Java 世界,我一直在编程一段时间,我真的很喜欢它。


我有一个关于打包系统和导入的小问题,如果我正在导入一个使用另一个库的库并且我已经在我的项目中使用该库,我该如何消除重复(如果可能的话),


换句话说:A是主程序,C和B是库,然后:C被添加到A B使用C


然后 B 也被添加到 A


AProject/

    src/

        LibC/

            src/

                somefiles.go

        LibB/

            src/

                LibC

                somefiles.go

        app.go

所以现在我有两个 C 库,一个从一开始就在 A 中,一个在 B 中,因为 B 依赖于 C。


我知道这有点令人困惑,但在 Java 世界中,我们有 Ant 和 Maven,这些构建工具让我们很容易处理依赖项。


有什么想法吗?


慕码人2483693
浏览 185回答 1
1回答

开心每一天1111

在 Go 中,没有重复的包。首先,您应该在如何编写 Go 代码中阅读有关 Go 工作区的信息。根据您的问题,您的目录结构应如下所示:gopath (gopath is the path of a directory in your $GOPATH list)├── bin│   └── projecta├── pkg│   └── linux_amd64│       └── projecta│           ├── libb.a│           └── libc.a└── src    └── projecta        ├── a.go        ├── libb        │   └── b.go        └── libc            └── c.go在哪里,gopath/src/projecta/a.go:package mainimport (    "projecta/libb"    "projecta/libc")func a() {    libb.B()    libc.C()}func main() { a() }gopath/src/projecta/libb/b.go:package libbimport (    "projecta/libc")func B() { libc.C() }gopath/src/projecta/libc/c.go:package libcfunc C() {}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go