为了账号安全,请及时绑定邮箱和手机立即绑定

在 Golang 中使用库

在 Golang 中使用库

Go
慕码人2483693 2021-09-20 21:00:48
首先,要明确的是,我来自 Java 世界,我一直在编程一段时间,我真的很喜欢它。我有一个关于打包系统和导入的小问题,如果我正在导入一个使用另一个库的库并且我已经在我的项目中使用该库,我该如何消除重复(如果可能的话),换句话说:A是主程序,C和B是库,然后:C被添加到A B使用C然后 B 也被添加到 AAProject/    src/        LibC/            src/                somefiles.go        LibB/            src/                LibC                somefiles.go        app.go所以现在我有两个 C 库,一个从一开始就在 A 中,一个在 B 中,因为 B 依赖于 C。我知道这有点令人困惑,但在 Java 世界中,我们有 Ant 和 Maven,这些构建工具让我们很容易处理依赖项。有什么想法吗?
查看完整描述

1 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

在 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 main


import (

    "projecta/libb"

    "projecta/libc"

)


func a() {

    libb.B()

    libc.C()

}


func main() { a() }

gopath/src/projecta/libb/b.go:


package libb


import (

    "projecta/libc"

)


func B() { libc.C() }

gopath/src/projecta/libc/c.go:


package libc


func C() {}


查看完整回答
反对 回复 2021-09-20
  • 1 回答
  • 0 关注
  • 184 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信