下载

链接
在这里插入图片描述

wget https://golang.google.cn/dl/go1.19.1.linux-amd64.tar.gz

解压安装包

sudo tar -zxvf go1.19.1.linux-amd64.tar.gz -C /usr/local/

删除安装包

sudo rm -rf go1.19.1.linux-amd64.tar.gz

配置环境变量

编辑配置文件

sudo vim /etc/profile 

添加环境变量

export GOROOT=/usr/local/go           
export GOPATH=$HOME/go          
export GOBIN=$GOPATH/bin           
export GO111MODULE=on 
export GOPROXY=https://goproxy.io
export PATH=$GOPATH:$GOBIN:$GOROOT/bin:$PATH    
  • GOROOT # 安装目录。
  • GOPATH # 工作环境
  • GOBIN # 可执行文件存放
  • GO111MODULE # Go的MODULE支持
  • GOPROXY # Go的代理服务器

使环境变量生效

source /etc/profile

查看环境两边是否生效

go version

在这里插入图片描述新建文件夹

mkdir -p $GOPATH/{bin,src,pkg}

GO代码必须在工作空间内。工作空间是一个目录,其中包含三个子目录:

  • src ——里面每一个子目录,就是一个包。包内是Go的源码文件
  • pkg —— 编译后生成的,包的目标文件
  • bin —— 生成的可执行文件

使用Vs Code配置开发环境

安装插件

VSCode Go —— 官方维护的插件
Git 工具 —— GitLens
方便查看代码块 —— Bracket Pair Colorizer 2
代码标记 —— Bookmark
API 开发利器 —— Rest Client
API 开发利器 —— Thunder Client
Prettier (全栈开发) —— 开启 format on save 功能
自动关闭标签 —— Auto Close Tag
自动更新标签名称 —— Auto Rename Tag
HTML 简写 —— Emmet

配置Go开发环境包

ctrl+shift+p

在这里插入图片描述全选回车
在这里插入图片描述

常用指令

go help

查看帮助文档

go help [commod]

在这里插入图片描述

go module

module介绍

go module是go新的依赖包管理系统,go module 是go语言从1.11版本之后官方推出的版本管理工具,基于vgo演变而来,是一个新型的包管理工具,在go1.11和go1.12该功能还在试验阶段,从go 1.13开始,go module 成为了go语言默认的依赖管理工具,从go1.14开始已经用于生产环境,并且鼓励所有用户从其他依赖包管理系统迁移到go module。

go.mod文件

go.mod文件是在项目的根目录下,是个Go依赖包的集合。包含go.mod文件的目录也被称为模块根,这个go.mod文件定义了Go依赖包的路径,也是项目使用的导入路径,还包括使依赖包能够成功构建的依赖需求。

Go mod 的三种开启模式

GO111MODULE

  • on:支持Go mod模式
  • off:不支持Go mod模式
  • auto (默认模式):如果代码在gopath下,则自动使用gopath模式;如果代码不在gopath下,则自动使用GO mod模式。
    (前面已经在环境变量中添加了GO111MODULE=on)

go mod init

新建文件夹,此时还不是module,因为还没有go.mod文件
在这里插入图片描述

通过 go mod init 命令,此命令会在当前目录中初始化和创建一个新的go.mod文件,当然也可以手动创建一个go.mod文件,然后包含一些module声明,这样就比较麻烦。go mod init命令可以帮助我们自动创建。

go mod init [项目名]

在这里插入图片描述
在这里插入图片描述

通过go mod init指令生成一个go.mod文件。

go mod download

go命令将在常规执行(编译、调试等等)期间根据需要自动下载模块。go mod download的作用主要是预填充本地缓存或者计算Go模块代理的结果。

go mod download [-dir] [-json] [modules] 使用此命令来下载指定的模块,模块的格式可以根据主模块依赖的形式或者path@version形式指定。如果没有指定参数,此命令会将主模块下的所有依赖下载下来。

go mod download -json

go mod tidy

默认情况下,go不会移除go.mod文件中的无用依赖。所以当你的依赖中有些使用不到了,可以使用go mod tidy命令来清除它。
go mod tidy [-v]它会添加缺失的模块以及移除不需要的模块。添加参数-v,即移除的模块打印到标准输出。

go mod tidy -v

go mod vendor

此命令会将build阶段需要的所有依赖包放到主模块所在的vendor目录中,并且测试所有主模块的包。同理go mod vendor -v会将添加到vendor中的模块打印到标准输出。

go mod vendor -v

go mod verify

此命令会检查当前模块的依赖是否已经存储在本地下载的源代码缓存中,以及检查自从下载下来是否有修改。如果所有的模块都没有修改,那么会打印all modules verified,否则会打印变化的内容。

go mod verify

go list -m all

打印当前module的依赖包。也可以添加 -json 参数

go list -m -json all

go mod graph

打印模块依赖图

go run

该命令会编译源码,并且直接执行源码的 main() 函数,不会在当前目录留下可执行文件。

go run 不会在运行目录下生成任何文件,可执行文件被放在临时文件中被执行,工作目录被设置为当前目录。在 go run 的后部可以添加参数,这部分参数会作为代码可以接受的命令行输入提供给程序。

go run main.go

在这里插入图片描述

go build

对源码和依赖的文件进行打包

go build

在这里插入图片描述
生成了myapp可执行文件

./myapp

在这里插入图片描述

go install

编译并安装活依赖,安装到$GOPATH/bin下

在这里插入图片描述
在这里插入图片描述

go get

go get 命令可以借助代码管理工具通过远程拉取或更新代码包及其依赖包,并自动完成编译和安装。

go get github.com/linuxdeepin/startdde
附加参数 备 注
-v 显示操作流程的日志及信息,方便检查错误
-u 下载丢失的包,但不会更新已经存在的包
-d 只下载,不安装
-insecure 允许使用不安全的 HTTP 方式进行下载操作

在这里插入图片描述

Logo

领路信创诚邀您共建高质量内容社区,投稿申请~

更多推荐