Go 工程化

创建项目

cd 到一个文件夹中做为项目的文件夹。使用 go mod init 命令创建项目,创建完成会在目录下生成 go.mod 文件

语法

go mod init 模块名称

示例

go mod init testProject

go.mod 文件中的内容如下:


包查找规则

依次从:当前项目目录->$GOROOT->$GOPATH 下寻找依赖包

从当前 .go 文件所在的目录逐级向上查找 go.mod 文件

go 标准库提供的包在 $GOROOT/src 目录下

第三方依赖包在 $GOPATH/pkg/mod 目录下


go mod tidy

go mod tidy的作用是把项目所需要的依赖添加到go.mod文件中,并删除go.mod中没有被项目使用的依赖。下载的依赖源码存放在$GOPATH/pkg/mod目录下。


go get 和 go install

go get

go get 将其指定的依赖包进行构建安装到go.mod,并将源代码下载到模块缓存中。在使用 go get 命令前,需要安装与远程包匹配的代码管理工具,如 Git、SVN、HG 等。所以为了 go get 命令能正常工作,你必须确保安装了合适的源码管理工具,参数中需要提供一个包名。

语法

go get [-t] [-u] [-v] [build flags] [packages]

示例1        将包添加到项目,或者升级到最新版本

go get 包名

示例2        将包升级或降级到特定版本

go get 包名@v1.2.3                // v1.2.3 表示某一个版本号

示例3        要删除对模块的依赖项并降级需要它的模块

go get 包名@none

参数说明
-t 同时下载包中的测试所需包
-u同时更新包所需的依赖包
-v显示执行的命令

go install

在早期版本的Go中,“go-get”用于构建和安装软件包。现在,“go-get”专门用于下载go.mod中的依赖项。“go-install”可以用于生成和安装命令。指定版本后 “go install”将以模块感知模式运行,并忽略当前目录中的go.mod文件。"go install" 生成的文件在$GOPATH/bin目录下。

示例        安装依赖包的二进制文件

go install 包名@v1.2.3


go build

go build 命令主要用于编译代码。在包的编译过程中,会同时编译与之相关联的包。编译包时,build会忽略以“_test.go”结尾的文件。

语法

go build [-o output] [build flags] [packages]

参数说明
-o强制build将生成的可执行文件或对象写入指定的输出文件或目录。
-v编译时显示包名
-p n开启并发编译,默认情况下该值为 CPU 逻辑核数
-a强制重新构建
-n打印编译时会用到的所有命令,但不真正执行
-x打印编译时会用到的所有命令

包引入规则

项目中,a目录下的a.go文件 要 使用b目录下b.go文件中的Add的函数。a中要引入b,引入规则如下:

import "module名称/b目录名称/"

使用规则如下:

b的包名称.函数

示例

包的别名

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

又逢乱世

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值