Go的下载与安装
首先下载Go,下载链接https://golang.google.cn/dl/
下载安装之后直接傻瓜式安装即可,安装完成之后打开终端输入 go version
,如果出现下面结果则安装成功。
博主使用VsCode代码编辑器,其提供了许多Go的插件,但是会出现下载不了的问题,可以参考这篇文章解决此问题。
Go 下载完之后可以使用 go env
查看 Go 开发包的环境变量配置信息:
set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\Dell\AppData\Local\go-build
set GOENV=C:\Users\Dell\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\Users\Dell\go\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\Dell\go
set GOPRIVATE=
set GOPROXY=https://goproxy.cn,direct
set GOROOT=C:\Program Files\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.19.1
set GCCGO=gccgo
set GOAMD64=v1
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=NUL
set GOWORK=
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 -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=C:\Users\Dell\AppData\Local\Temp\go-build1298709145=/tmp/go-build -gno-record-gcc-switches
输出信息部分如下:
GOARCH
表示目标处理器架构GOBIN
表示编译器和链接器的安装位置GOOS
表示目标操作系统,这里为 WindowsGOPATH
表示当前工作目录,这里为C:\Users\Dell\go
GOROOT
表示 Go 开发包的安装目录
在 Go 1.8 版本之前,GOPATH
环境变量默认是空的。从 Go 1.8 版本开始,Go 开发包在安装完成后,将 GOPATH
赋予了一个默认的目录,参见下表。
平台 | GOPATH默认值 | 举例 |
---|---|---|
Windows平台 | %USERPROFILE%/go | C:\Users\用户名\go |
Unix平台 | $HOME/go | /home/用户名/go |
GOPATH
目录一般为:
$HOME/go
--bin # 存放编译后的可执行文件
--pkg # 依赖包编译后的*.a文件
--src # 存放源码文件,以代码包为组织形式
比如下面就是一般Go项目的开发目录:
my-go // my-go为GOPATH目录
-- bin
-- myApp1 // 编译生成
-- myApp2 // 编译生成
-- myApp3 // 编译生成
-- pkg 依赖包编译后的*.a文件//
-- src
-- MyApp1 // 项目1
-- models
-- controllers
-- others
-- main.go
-- MyApp2 // 项目2
-- models
-- controllers
-- others
-- main.go
设置 GOPATH
后,工程中使用 import的根目录是GOPATH中的src目录 GOPATH
为 C:\Users\Dell\go
,工程为 C:\Users\Dell\Desktop\my-go\src\MyApp1
,那么 MyApp1 中使用 import
导入本地包的时候,这样写:
import ”MyApp1\models“ // models为包名
也就是说,GOPATH下必须要有src文件,不然 import
导包的时候会找不到。
import
导包规则:
-
先去
$GOROOT\src/
路径下找C:\Program Files\Go
(系统环境变量$GOROOT
,即使用go env
命令显示的GOROOT
) -
如果
$GOROOT
没有找到,就去Project GOPATH\src\
路径下找C:\Users\Dell\Desktop\my-go\src\MyApp1
-
如果
Project GOPATH\src\
还没找到,就去Global GOPATH
路径下找C:\Users\Dell\go
(系统环境变量$GOPATH
,即使用go env
命令显示的GOPATH
)
HelloWorld
这里使用集成开发环境 Visual Studio Code,首先使用 go mod init Go_1
初始化,生成 go.mod
,其内容如下:
module GO_1
go 1.19
该命令初始化并写入一个新的 go.mod
至当前目录中,实际上是创建一个以当前目录为根的新模块。
更多 go mod init
的内容可以看这篇文章
然后创建文件 HelloWorld.go
,输入以下代码:
package main //指明这个文件属于main包
import "fmt" //导入fmt包
func main() {
fmt.Println("Hello, World!") //输出Hello, World!
}
然后使用 go run .
运行:
此外我们还可以使用 go build HelloWorld.go
生成可执行文件 HelloWorld.exe