缘由
现在用 Go 的公司越来越多,学 Go 的童鞋也越来越多,于是我便随大流开始学 Go,这篇博客便记录今晚安装及成功运行第一个 Hello World 的例子。
安装
进入 https://studygolang.com/dl 下载 https://dl.google.com/go/go1.13.windows-amd64.msi ,由于没有连上 Linux 环境,便在 Windows 上安装了。双击下载成功 msi 文件,选择安装目录,点击下一步然后就安装成功了。
查看刚刚安装的 Go 版本
C:\Users\Administrator.2013-20181209SZ>go version
go version go1.13 windows/amd64
GOPATH
接下来打开环境变量,或打开命令行输入 go env,会发现 GOPATH 已经有了默认值
C:\Users\Administrator.2013-20181209SZ>go env
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\Administrator.2013-20181209SZ\AppData\Local\go-build
set GOENV=C:\Users\Administrator.2013-20181209SZ\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\Administrator.2013-20181209SZ\go
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=c:\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=c:\go\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 -fmessag
e-length=0 -fdebug-prefix-map=C:\Users\ADMINI~1.201\AppData\Local\Temp\go-build1
66505414=/tmp/go-build -gno-record-gcc-switches
这是因为在 Go 1.8 版本之前,GOPATH 环境变量默认是空的。从 Go 1.8 版本开始,Go 开发包在安装完成后,将 GOPATH 赋予了一个默认的目录,参见下表。
平 台 | GOPATH 默认值 | 举 例 |
---|---|---|
Windows 平台 | %USERPROFILE%/go | C:\Users\用户名\go |
Unix 平台 | $HOME/go | /home/用户名/go |
重新设置个,比如在 D 盘新建个 go 目录,再打开环境变量,找到 GOPATH,清空并填入 D:\go,保存,关闭 cmd 再打开,然后再查看 GOPATH 的值
C:\Users\Administrator.2013-20181209SZ>go env GOPATH
D:\go
接下来在 D:\go 目录里面建立约定的 src、pkg、bin 三个目录。其中 src 目录用于存放 Go 源代码,pkg 目录用于 package 对象,bin 目录用于存放可执行对象。使用 Go 的编译命令工具可以将源代码或 package 编译后的二进制输出对应存储到 bin 和 pkg 目录中。src 目录中的源代码根据 package 名分类到对应的子目录中,并且可以使用各种版本控制工具。
示例
OK,到此为止,环境都配置好了,那咱们开始 Hello World 之旅吧,在 src 目录中新建 hello.go 文件,把以下代码写入进去
package main
import "fmt"
func main(){
fmt.Printf("Hello World!");
}
使用命令行跳转到工作空间的对应包目录下,运行命令:
D:\go\src>go run hello.go
Hello World!
至此,Go 初探完成,期待下次精彩之旅,未完待续。