https://studygolang.com/dl
下载之后傻瓜式安装,一路next即可,也可以修改文件安装路径
如果是默认安装C盘不用进行下面操作
1.在系统变量中添加GOROOT
2.添加系统变量中的Path
3.GOPATH:就是你以后go项目存放的路径,即工作目录
4.在$GOPATH目录下新建3个子目录,src,pkg,bin
5.测试
记得go项目文件要保存在自己设置的GOPATH路径下。其实现在不推荐项目文件放在GPOPATH文件夹下了
在终端打开 输入go build test.go,进而test.exe即可
我们安装完golang后,我们在windows的cmd命令下就可以直接查看和使用go命令和环境变量了
C:\Users\AB123>go env set GO111MODULE= set GOARCH=amd64 set GOBIN= set GOCACHE=C:\Users\AB123\AppData\Local\go-build set GOENV=C:\Users\AB123\AppData\Roaming\go\env set GOEXE=.exe set GOEXPERIMENT= set GOFLAGS= set GOHOSTARCH=amd64 set GOHOSTOS=windows set GOINSECURE= set GOMODCACHE=E:\goProject\pkg\mod set GONOPROXY= set GONOSUMDB= set GOOS=windows set GOPATH=E:\goProject set GOPRIVATE= set GOPROXY=https://proxy.golang.org,direct set GOROOT=E:\ruanjian\go set GOSUMDB=sum.golang.org set GOTMPDIR= set GOTOOLDIR=E:\ruanjian\go\pkg\tool\windows_amd64 set GOVCS= set GOVERSION=go1.20.1 set GCCGO=gccgo ...
从go1.16开始默认值为on,没有的自行设置
GO111MODULE是 go modules 功能的开关,关于go modules本文不详述,这个涉及到go的一种很重要的管理机制,我们可以简单的理解为,在没有go modules机制时,go工程中对于第三方功能包的管理非常复杂,也非常专业,这就导致程序员在进行开发的时候,对于第三方功能包的管理很不方便,所以才有了go modules机制。这个机制的开关是通过GO111MODULE环境变量来配置的。
GO111MODULE=off,无模块支持,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。
GO111MODULE=on,模块支持,go命令行会使用modules,而一点也不会去GOPATH目录下查找。
GO111MODULE=auto,默认值,go命令行将会根据当前目录来决定是否启用module功能。这种情况下可以分为两种情形:
1.当前目录在GOPATH/src之外且该目录包含go.mod文件,开启模块支持。
2.当前文件在包含go.mod文件的目录下面。
注:
在使用go modules时,GOPATH是无意义的,不过它还是会把下载的依赖存储在$GOPATH/pkg/mod中
也会把go install 的结果放在 $GOPATH/bin 中。
当modules 功能启用时,依赖包的存放位置变更为$GOPATH/pkg
允许同一个package多个版本并存,且多个项目可以共享缓存的module。
命令设置如下:
go env -w GO111MODULE=on
注:如果后面不需要使用,可以再将值设置为off。
从字面意思就能看出,GOPROXY表示的是go的代理设置,之所以有这个环境变量,是因为go这种语言不像C语言,在C语言中,如果我们想要使用别人的第三方代码,一般有两种途径:
而在go语言中,类似于java,可以在编程时,引入第三方代码的库地址,比如git仓库,然后在编译的时候,IDE会自动的拉取第三方库文件到当前工程。
这样做虽然很方便,但是带来了一个问题:网速和限制,
golang默认的GOPROXY是https://goproxy.io,这个是官方的设置,我们可以使用国内的代理,Windows下设置如下:,因为一些限制,我们不能很顺利的使用和下载这些仓库,这样就会导致下载缓慢或者失败,所以这个时候就需要一个代理来实现下载,这个代理就是中间商,可以跨过限制来访问。
golang默认的GOPROXY是https://goproxy.io,这个是官方的设置,我们可以使用国内的代理,Windows下设置如下:
go env -w GOPROXY=https://goproxy.cn,direct
注:其中 -w 表示 写 操作。
(base) zcymac:~ zcy$ go help Go is a tool for managing Go source code. Usage: go[arguments] The commands are: bug start a bug report build compile packages and dependencies clean remove object files and cached files doc show documentation for package or symbol env print Go environment information fix update packages to use new APIs fmt gofmt (reformat) package sources generate generate Go files by processing source get add dependencies to current module and install them install compile and install packages and dependencies list list packages or modules mod module maintenance run compile and run Go program test test packages tool run specified go tool version print Go version vet report likely mistakes in packages Use "go help " for more information about a command. Additional help topics: buildconstraint build constraints buildmode build modes c calling between Go and C cache build and test caching environment environment variables filetype file types go.mod the go.mod file gopath GOPATH environment variable gopath-get legacy GOPATH go get goproxy module proxy protocol importpath import path syntax modules modules, module versions, and more module-get module-aware go get module-auth module authentication using go.sum packages package lists and patterns private configuration for downloading non-public code testflag testing flags testfunc testing functions vcs controlling version control with GOVCS Use "go help " for more information about that topic.
go help: 查看帮助文档。
go help build
go build: 对源代码和依赖的文件进行打包,生成可执行文件。
go build -o my_first_go_exe entrance_class/demo.go
go install: 编译并安装包或依赖,安装到$GOPATH/bin下。
go install entrance_class/demo.go
go get: 把依赖库添加到当前module中,如果本机之前从未下载过则先下载。
go get github.com/tinylib/msgp
以上命令会在$GOPATH/pkg/mod目录下会生成github.com/tinylib/msgp目录。
go install github.com/tinylib/msgp@latest
以上命令会在$GOPATH/bin下生成msgp可执行文件。
go mod init module_name
初始化一个Go项目。
go mod tidy通过扫描当前项目中的所有代码来添加未被记录的依赖至go.mod文件或从go.mod文件中删除不再被使用的依赖。
go run: 编译并运行程序。
go test: 执行测试代码。
go tool: 执行go自带的工具。go tool pprof对cpu、内存和协程进行监控;go tool trace跟踪协程的执行过程。
go vet: 检查代码中的静态错误。
go fmt: 对代码文件进行格式化,如果用了IDE这个命令就不需要了。
go fmt entrance_class/demo.go
go doc: 查看go标准库或第三方库的帮助文档。
go doc fmt go doc gonum.org/v1/gonum/stat
go version: 查看go版本号。
go env: 查看go环境信息。