本系列教程,目的是帮助一个有其他编程基础的 Go 语言小白快速入门 Go 语言,而非启发式学习。每篇幅保证不说废话,尽可能精炼总结,为上手后续的 Go 相关项目打下基础。
系列相关代码同步 gitee 仓库:https://gitee.com/Cauchy_AQ/HelloGo
官网 下载安装 Go 的二进制可执行文件。
msi 文件是微软的安装包程序,选择默认的 Go 开发包安装位置,一路安装即可。
安装完成后,可以在 cmd 中执行 go env
查看当前的环境变量,成功执行则代表 Go 安装成功。
官网 下载开发工具 Goland。
软件需要付费支持正版,也可以免费使用 30 天。
下载好后打开,创建本系列 HelloGo
的第一个项目 01-helloworld
:
GOROOT
:选择 Go 工具链的安装路径,Go 编译器会自动在该目录下查找。
上述安装 Go 后默认的 GOPATH 下包含三个重要目录:src
,pkg
,bin
。src
目录是用于存放 Go 语言源代码,pkg
目录是用于存放编译后的库文件,bin
目录是用于存放编译后的可执行文件。
虽然目前 Go 采用默认的 Go Modules 模式,而非 GOPATH 模式,但也可以选择将项目文件放在 src 目录下。
在设置中配置 GOPATH
,用于指定 Go 语言工作区的路径,这样在模块管理时会先去 $GOPATH/pkg
查找对应模块。
为使 Go 在后续拉取模块版本时能够直接通过镜像站点来快速拉取。还需修改 GOPROXY
,设置 Go 模块代理。
GOPROXY=https://goproxy.cn,direct
上述创建新项目,配置完成后,打开 Goland 左下角的终端:
在此执行 go env
查看当前的环境变量:
可以看到 GOROOT
、GOPATH
、GOPROXY
都符合预期设置成功了,并且 GO111MODULE=on
表示开启 Go Modules 模式。
初始化项目完成后,会生成一个 go.mod
文件,它描述了当前项目(模块)的元信息,是启用了 Go modules 项目最重要的标识。
现在创建第一个 Go 程序,新建一个 main.go 文件:
package main // 声明 main 包,表明当前是一个可执行程序
import "fmt" // 导入内置 fmt 包
func main() {
fmt.Println("Hello Golang!")
}
执行:go run main.go
也可执行程序,该命令会将文件编译后在临时目录执行
编译:go build
将源代码编译成可执行文件
至此,第一个 Go 项目就成功运行了!
统一GOPROXY
由于后续项目都需要一致的 Go 模块代理,所以可以进行统一设置,并不需要每次创建新项目都进行设置。打开 cmd,执行下述语句。
go env -w GOPROXY=https://goproxy.cn,direct
跨平台编译
上述在执行 go build
后,自动生成了 exe 文件。这是由于 go env
中 set GOOS=windows
生成对应平台下的执行文件。
如果想要在 Windows 平台编译 Linux 可执行文件,只需要在编译时指定目标操作系统和处理器架构即可。
在 cmd 下临时指定相应环境变量,并在同一 cmd 下进入项目目录下执行 go build
:
set CGO_ENABLED=0 // 禁用CGO
set GOOS=linux // 目标操作系统 Linux
set GOARCH=amd64 // 目标处理器架构 amd64 (linux:uname -m 查看处理器架构)