go_包管理

到目前为止,所有示例代码只有一 Go 文件,其中包含一个 main函数和几个其他函数。这种将所有源代码写入单个文件的方法是不可扩展的。重用和维护以这种方式编写的代码变得不可能。这就是需要使用包的原因。

包用于组织 Go 源代码以获得更好的可重用性和可读性。包是位于同一目录中的 Go 源文件的集合。包提供了代码划分,因此使得Go 项目易于维护。

主函数和主包

每个可执行的 Go 应用程序都必须包含 main 函数。该函数是执行的入口点。主要功能应该驻留在主包中。

package packagename指定特定源文件属于 package packagename。这应该是每个 go 源文件的第一行。

Go Module

Go1.11开始新增了命令go mod来支持Modules的使用。

初始化

首先确保在确保在learnpackage目录中。在这个目录中运行以下命令来创建一个名为learnpackage的 go 模块。

go mod init learnPackage

上面的命令将创建一个名为go.mod. 以下将是该文件的内容。
在这里插入图片描述

该行module learnpackage指定模块的名称是learnpackage。正如我们之前提到的,learnpackage将是导入此模块内创建的任何包的基本路径。
在这里插入图片描述

导入第三方包

开发中我们经常要用到第三方包

package main

import (
    log "github.com/sirupsen/logrus"
)

func main() {
    log.WithFields(log.Fields{
        "animal": "walrus",
    }).Info("A walrus appears")
}

第 4 行我们引入了第三方的 log 包。保存好之后,然后执行 go build,再次查看go.mod文件发现多了一些内容:

module learnpackage go 1.18

require github.com/sirupsen/logrus v1.1.1

这就是引入第三方包。但是通常我们借助 ide 或 其它智能编辑器时,都会自动下载包。

常用命令

以上章节,都假设你是一位想学习 golang 编程的新手。 关于 go modules,只使用到了 go mod init 命令。若想看看 go mod 还有哪些功能,使用 go mod help 查看。

随着你的项目越来越复杂,会引用别人写好的库,这时你会需要 go mod tidy 来帮助管理。

go mod init        initialize new module in current directory 在当前目录初始化mod

go mod tidy //拉取缺少的模块,移除不用的模块。

go mod download //下载依赖包

go mod vendor //将依赖复制到vendor下

go mod verify //校验依赖

go list -m -json all //依赖详情

go mod graph //打印模块依赖图

go mod why //解释为什么需要依赖
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值