Golang学习笔记(一)-Go语言环境安装以及运行代码
Linux安装
Golang官网下载地址:https://golang.org/dl/
1、下载安装包
2、解压至 /usr/local 目录
tar -C /usr/local -zxvf go1.11.5.linux-amd64.tar.gz
3、添加 /usr/loacl/go/bin 目录到PATH变量中。添加到/ etc/profile 或 $HOME/.profile 都可以
vim /etc/profile export GOROOT="/usr/local/go" export GOPATH="/root/go" export GOBIN="/root/go/bin" export PATH="$PATH:$GOROOT/bin:$GOBIN" export GO111MODULE="on" export GOPROXY="https://goproxy.cn,direct" export GONOPROXY="*git.example.com" export GONOSUMDB="*git.example.com" source /etc/profile
代码运行
编写go代码
[root@VM-0-6-centos go]# tree . |-- bin |-- pkg `-- src |-- test_demo // test_demo项目是输出二进制文件 | `-- app.go `-- utils `-- add.go // utils项目是输出包
方式 1:go run
进入代码目录
go run app.go
方式 2:go build(推荐)
进入代码目录 //编译代码,在当前目录生成一个可执行文件 go build // 默认生成的可执行文件名称与工程名称相同 //运行 ./test_demo go build -o xxx // -o 指定生成二进制文件的名称
GO程序员的项目:
-
产出一个可执行文件
-
产出一个包
方式 3:go install
1) "$GOPATH/bin"目录,生成可执行文件
[root@VM-0-6-centos test_demo]# cat app.go package main import( "fmt" ) func main(){ fmt.Println("hello,main") } 进入test_demo代码目录 //执行go install编译代码,"$GOPATH/bin"目录,生成可执行文件 go install 结果: [root@VM-0-6-centos go]# tree . |-- bin | `-- test_demo // 产出可执行文件 |-- pkg `-- src |-- test_demo | `-- app.go `-- utils `-- add.go
2) "$GOPATH/pkg"目录,生成utils的包文件
[root@VM-0-6-centos utils]# cat add.go package utils func Add(a,b int)int{ return a+b } 进入utils代码目录 //执行go install编译代码,"$GOPATH/pkg"目录,生成utils.a包文件 go install 结果: [root@VM-0-6-centos go]# tree . |-- bin | `-- test_demo |-- pkg | `-- linux_amd64 | `-- utils.a // 产出文件包 `-- src |-- test_demo | `-- app.go `-- utils `-- add.go
Windows环境
下载Go语言开发包
大家可以在Go语言官网(https://golang.google.cn/dl/)下载 Windows 系统下的Go语言开发包,如下图所示。

这里我们下载的是 64 位的开发包,如果读者的电脑是 32 位系统的话,则需要下载 32 位的开发包,在上图所示页面中向下滚动即可找到 32 位开发包的下载地址,如下图所示。

注意:下载 Windows 版本的Go语言开发包时尽量选择 MSI 格式,因为它可以直接安装到系统,不需要额外的操作。
安装Go语言开发包
双击我们下载好的Go语言开发包即可启动安装程序,如下图所示,这是Go语言的用户许可协议,无需管它,直接勾选“I accept ...”然后点击“Next”即可。

在 Windows 系统下Go语言开发包会默认安装到 C 盘的 Go 目录下,推荐在这个目录下安装,使用起来较为方便。当然,你也可以选择其他的安装目录,确认无误后点击“Next”,如下图所示:

Go语言开发包的安装没有其他需要设置的选项,点击“Install”即可开始安装,如下图所示:
等待程序完成安装,然后点击“Finish”退出安装程序。

安装完成后,在我们所设置的安装目录下将生成一些目录和文件,如下图所示:

这个目录的结构遵守 GOPATH 规则,后面的章节会提到这个概念。目录中各个文件夹的含义如下表所示。
目录名 | 说明 |
---|---|
api | 每个版本的 api 变更差异 |
bin | go 源码包编译出的编译器(go)、文档工具(godoc)、格式化工具(gofmt) |
doc | 英文版的 Go 文档 |
lib | 引用的一些库文件 |
misc | 杂项用途的文件,例如 Android 平台的编译、git 的提交钩子等 |
pkg | Windows 平台编译好的中间文件 |
src | 标准库的源码 |
test | 测试用例 |
开发时,无须关注这些目录。如果读者希望深度了解底层原理,可以通过上面的介绍继续探索。
设置环境变量
开发包安装完成后,我们还需要配置一下GOPATH
环境变量,之后才可以使用Go语言进行开发。GOPATH 是一个路径,用来存放开发中需要用到的代码包。
在桌面或者资源管理器右键“此电脑”(或者“我的电脑”)→“属性”→“高级系统设置”→“环境变量”,如下图所示。

在弹出的菜单里找到 GOPATH 对应的选项点击编辑之后就可以修改了,没有的话可以选择新建,并将变量名填写为 GOPATH,变量值设置为任意目录均可(尽量选择空目录),例如 D:\Go。

在用户系统变量添加 GOROOT 、 GOPATH 、 GOBIN 三个环境变量
GOBIN="/root/go/bin" GOROOT="/usr/local/go" GOPATH="/root/go"
提示:填写完成后,每个打开的窗口都需要点击“确定”来保存设置。
其它的环境变量安装包均会进行自动设置。在默认情况下,Go 将会被安装在目录 c:\go 下,但如果你在安装过程中修改安装目录,则可能需要手动修改所有的环境变量的值。
环境变量设置好后,可以通过 go env 命令来进行测试。
set GO111MODULE=auto set GOARCH=amd64 set GOBIN=E:\go\bin set GOCACHE=C:\Users\Administrator\AppData\Local\go-build set GOENV=C:\Users\Administrator\AppData\Roaming\go\env set GOEXE=.exe set GOFLAGS= set GOHOSTARCH=amd64 set GOHOSTOS=windows set GOINSECURE= set GOMODCACHE=E:\go\pkg\mod set GONOPROXY= set GONOSUMDB= set GOOS=windows set GOPATH=E:\go set GOPRIVATE= set GOPROXY=https://goproxy.cn,direct set GOROOT=C:\go\bin set GOSUMDB=sum.golang.org set GOTMPDIR= set GOTOOLDIR=C:\go\bin\pkg\tool\windows_amd64 set GCCGO=gccgo set AR=ar set CC=gcc set CXX=g++ set CGO_ENABLED=1 set GOMOD= set CGO_CFLAGS=-g -O2 set CGO_CPPFLAGS= set CGO_CXXFLAGS=-g -O2 set CGO_FFLAGS=-g -O2 set CGO_LDFLAGS=-g -O2 set PKG_CONFIG=pkg-config set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\ADMINI~1\AppData\Local\Temp\go-build220352058=/tmp/go-build -gno-record-gcc-switches
上面只显示了部分结果,如果执行go env
命令后,出现类似上面的结果,说明我们的Go开发包已经安装成功了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义