2024年2月3日,记录一下Go学习历程
找到了Go的官网 - Go官网,挺幸运的,国内还可以访问。
1. 安装 & 配置
首先需要下载go的sdk,而Mac上的Homebrew还挺好用的
brew install golang
安装完成之后,输入go
,可以看到go可以使用的一些命令,其中go version
, 可以看到当前下载的go的版本- 1.21.6
go version go1.21.6 darwin/arm64
因为使用homebrew下载的软件,会自动为软件的二进制文件创建软链接,使用go命令的时候,会找到命令的实际位置并执行,因此不需要配置环境变量。使用其他方式下载的,还是需要配置环境变量的
更详细的使用go env
可以查看Go环境相关的配置信息(print Go environment information)
例如:
GO111MODULE='on'
GOARCH='arm64'
GOBIN=''
GOCACHE='/Users/YourName/Library/Caches/go-build'
GOENV='/Users/YourName/Library/Application Support/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='arm64'
GOHOSTOS='darwin'
GOINSECURE=''
GOMODCACHE='/Users/YourName/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='darwin'
GOPATH='/Users/YourName/go'
GOPRIVATE=''
GOPROXY='https://proxy.golang.com.cn,https://goproxy.cn,direct'
GOROOT='/opt/homebrew/Cellar/go/1.21.6/libexec'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/opt/homebrew/Cellar/go/1.21.6/libexec/pkg/tool/darwin_arm64'
GOVCS=''
GOVERSION='go1.21.6'
GCCGO='gccgo'
AR='ar'
CC='cc'
CXX='c++'
CGO_ENABLED='1'
GOMOD='/dev/null'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -ffile-prefix-map=/var/folders/8l/gbk2f19n4_xcnvx76s5h99km0000gn/T/go-build3254837829=/tmp/go-build -gno-record-gcc-switches -fno-common'
针对这些配置,有几点说明(GOPATH与go module):
GOROOT
:是下载的sdk安装的位置,一般不需要修改GOPATH
:是go在早期管理项目的方式,那时候,大家需要在该路径下创建bin、pkg、src目录,我们项目的代码必须放在src目录下,同时项目中使用到的第三方依赖也会下载到这里,管理起来十分混乱,现已不再使用,而代替它的则是Go modules
。GO111MODULE
:就是用来控制是否启用Go Modules
。Go modules
可以类似的看作Java
中的Maven
, 都是用来管理包的。 在go1.13版本,该配置已默认开启。GOPROXY
:是用来配置代理的,可以看作是Maven
中配置国内阿里云镜像,用来提升下载三方依赖的速度。(可以通过执行go env -w GOPROXY=https://goproxy.io,direct
命令进行配置。这里可能因为我的Homebrew已经配置了阿里云的镜像,导致下载的GO已经配置好了代理)
可以看到,我这里配置了两个代理:https://proxy.golang.com.cn 和 https://goproxy.cn。
最后的direct代表着:如果所有代理都失败,Go工具链将尝试直接从源获取模块
2. 选择IDE
这个完全看自己的喜好,可以使用vscode,也可以使用GoLand,而我因为是做Java开发的,则更倾向于使用GoLand(直接通过JetBrains Toolbox下载了)。
3. 创建项目 & 永远的Hello World
3.1 创建项目
在IDE中,选择好你的代码存储路径,然后新建一个项目 - Gourney,意味着Golang Journey,Go之旅从此开始!
然后点击Create,创建项目。
可以看到新建的项目中,包括一个自动生成的文件go.mod(项目中管理依赖的地方,类型Maven中的pom.xml),可以看到文件中记录了项目名称已经SDK版本
3.2 Hello World
新建一个go文件,命名为main
然后在main
函数中,输入fmt.Println("Hello, World!")
最后,鼠标右键,点击运行
永远的Hello World