要开始go语言的学习,首先要配置好go的开发环境。windows+vscode2019插件环境及Linux的go编译环境
可以去golang中国下载 LInux环境配置在文末
根据自己的系统选择对应的下载 我的是选择最后一个
下载好后 安装在一个较简单的目录下(好像不能有中文) 按照提示一路点击即可
安装完成后打开命令行cmd 进入到安装目录下的bin目录 输入以下指令
go version
当出现版本号说明安装成功:
打开我的电脑找到属性里面的环境变量配置
或者在设置里直接搜索环境变量
GOROOT为下载的go包目录位置 里面存放着go源码及API
新建GOROOT
GOPATH为工作目录 存放着自己写的go代码
当不使用Go mod管理时依赖包(如Google/grpc)也需加入到GOPATH管理(;附加也可)
不使用go mod 管理的话会默认去GOPATH的src下找
新建配置GOPATH(用户变量和系统变量都有)
PATH为go的可执行文件目录 即GOROOT的bin目录 例如go env go build fmt
增加系统变量PATH 浏览目录后添加到下方(注:系统变量会把设置的命令行配置为全局变量 变量PATH为各种配置环境公用 类似Linux下的/usr/local/bin 小心操作)
在这里添加一个GO的环境变量 D:\Program Files\Go\bin(此目录为go源码的bin目录)
配置好后打开cmd输入查看环境变量
go env
当GOPATH变成配置的环境变量
测试是否配置成功(配置好要重新打开cmd)
在其他目录(根目录)下输入go version和go env 可以看到对应的输出代表配置成功
在vscode中下载go的扩展
VsCode Go插件依赖的工具
接下来 安装Go插件所依赖的go tools
按ctrl+shift+p 调出命令面板,输入go install tools 选Go: Install/Update Tools
如下:
点击后我直接全选全部安装
如果安装失败尝试替换代理
go env -w GOPROXY=https://goproxy.cn
安装完成后 已经有代码提示及自动导包
环境测试一:不使用go mod管理
先创建go文件存放路径 我的路径如下
D:\goproject\src\gocode\project01\main
使用vscode打开文件夹
在main下新建一个文件hello.go (go语言有包的概念 好像是每个文件都要属于一个包)
打出经典代码
package main
import "fmt"
func main() {
fmt.Println("hello,world!")
}
这里如果 GOROOT(源码) 和GOPATH(工作目录) PATH三个环境变量没有问题可以正常编译通过
二:使用go mod
go mod是go高版本之后出现的包管理工具,要么使用默认包管理,要么使用go mod,不能同时使用
当使用了go mod时下载的依赖在GOROOT的pkg的mod下管理
使用 go env 命令 查看
GO111MODULE=off 是没有开启
1:开启go modules功能,命令行输入
go env -w GO111MODULE=on
初始化mod管理模块(进入到项目目录下 xxx为项目名称)
go mod init xxx //xxx代表当前文件夹名
go mod相关
//初始化模块:
Go mod init <项目模块名称>
//依赖关系处理,根据go.mod文件
Go mod tidy
//将依赖包复制到项目的vendor目录
Go mod vendor
//显示依赖关系
Go list -m all
//显示详细依赖关系
Go list -m -json all
//下载依赖
Go mod download [path@version]
可以发现出现mod
使用go env查看环境查看是否设置成功
然后开始编译输出
很好,hello world 成功输出,go语言学习成功,不对,环境变量配置成功。
Linux环境配置:
选择对应的Linux版本
下载成功后通过终端软件上传到Linux环境下 我使用的是 MobaXterm
cd到上传的目录下使用解压目录解压
tar -zxvf go1.18.7.linux-amd64.tar.gz
把解压好的配置文件 复制到 /usr/local/bin下(cp -r)
接下来配置环境 使用命令打开配置
vi /etc/profile
使用vi编辑器配置 $PATH为在原来的系统配置 :在后面追加一个新的环境 GOPATH为你的工作区 如下:
wq!保存后使用命令立即更新环境
source /etc/profile
使用go env查看是否成功
需在Linux上编译开发可以把window的工作区目录挂载到linux上 就可以在window下使用IDE代码提示 保存后会实时更新到linux的挂载目录直接可以编译。