## window操作
打开官网 https://golang.google.cn/ 下载最新版本得 安装包
然后一顿操作安装好。
![](https://img.kancloud.cn/6a/bb/6abba1edef511b897b509901ac4840d8_1901x671.png)
检查环境变量 未配置可以手动配置 一般会自动配置
参考:https://blog.csdn.net/adolphkevin/article/details/90274378
![](https://img.kancloud.cn/0b/05/0b056ca0e1c6a6e4be55bd09ad8c99d7_1362x664.png)
下载安装完毕后 ,打开cmd窗口,输出 go version 指令
![](https://img.kancloud.cn/91/bd/91bde615503a065d93b02e9cc226cb6c_701x151.png)
cmd输入 go env 可查看配置
信息
![](https://img.kancloud.cn/92/63/92633a0d6b98e11cc8863c59bab284a7_1387x797.png)
```
set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\Administrator\AppData\Local\go-build
set GOENV=C:\Users\Administrator\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\Users\Administrator\go\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\Administrator\go
set GOPRIVATE=
set GOPROXY=https://goproxy.cn,direct
set GOROOT=D:\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=D:\Go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.17.5
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=NUL
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 -fmessage-length=0 -fdebug-prefix-map=C:\Users\ADMINI~1\AppData\Local\Temp\go-build940062871=/tmp/go-build -gno-record-gcc-switches
```
![](https://img.kancloud.cn/03/b5/03b515e172a880e0ba85b27c5763e863_1314x605.png)
以上只是命令的其中一部分,集体详情在命令行:go help environment
GO111MODULE
```
set GO111MODULE=on
```
go语言提供GO111MODULE环境变量三个值,用于GO111MODULE的开关:
* auto:只要项目中包含了go.mod这个文件,就启动该项目的go modules,在 Go1.11 至 Go1.14 中仍然是默认值。
* on:启动go modules
* off:关闭go modules
这玩意必须开着,不然没办法用github上的包,也就是项目没办法引入其他模块,开启方法,cmd 输入下面指令
```
go env -w GO111MODULE=on
```
GOPROXY
```
set GOPROXY=https://goproxy.cn,direct
```
GOPROXY的值是一个以英文逗号 “,” 分割的 Go 模块代理列表,允许设置多个模块代理,假设你不想使用,也可以将其设置为 “off” ,这将会禁止 Go 在后续操作中使用任何 Go 模块代理。
go env中默认的代理是GOPROXY="https://proxy.golang.org,direct",但是在国内是无法访问的,这里需要设置成国内的代理地址
cmd 输入下面指令之一
```
go env -w GOPROXY=https://goproxy.cn,direct
```
```
go env -w GOPROXY=https://goproxy.io,direct
```
打开 vs code 安插GO插件,这个必须装
![](https://img.kancloud.cn/af/64/af64613e87b9d0f4dceba3d621ca9a64_741x279.png)
Code Runner 代码快捷运行, 可以运行片段,十分强大,推荐安装
![](https://img.kancloud.cn/1b/91/1b91fc47268e59788fc4554431d7d356_554x136.png)
安装之后 新建一个文件 选GO语言
![](https://img.kancloud.cn/90/ae/90ae3d38fd32651c5749468d1d6d52f8_688x317.png)
运行或保存会弹窗 安装依赖包 选择全安装 install all 等待安装完毕,如果这里改了GOPROXY就没问题,可以安装好
![](https://img.kancloud.cn/c9/23/c923b97d1eb1f3ad764b34d6e58e29e3_649x199.png)
![](https://img.kancloud.cn/e9/d3/e9d30fd4511eda81cd70715cfa77f73f_1209x511.png)
完成上面步骤就可以写go代码了,但是到后面发现,我需要用到github上的包,就需要有这个go.mod才能使用
在set GOPATH=C:\Users\Administrator\go
路径下创建一个项目(也可以随便路径,这个没要求)ay66555\ay66544\goone,ay66555模拟github.com,ay66544模拟账号,goone是最终的项目名称。但是github上一般项目都是这种形式(github.com/username/itemname)
目录和文件结构
![](https://img.kancloud.cn/b1/1f/b11f14529ee48804ac9e856382c30114_802x194.png)
按shifte+右击 可以goone目录下打开命令窗口,然后执行 go mod init ay66555/ay66544/goone 指令初始化goone项目的mod文件
![](https://img.kancloud.cn/ea/ab/eaab7d22d66994300c30c52008c51642_843x248.png)
执行完初始化操作后生成了一个go.mod的文件,里面只记录了2行
![](https://img.kancloud.cn/2d/7a/2d7a19845fb53685fb52a2a7520230a1_684x170.png)
* module:用于定义当前项目的模块路径
* go:用于标识当前模块的 Go 语言版本,值为初始化模块时的版本,目前来看还只是个标识作用
.
这个go bin也要设置也是set GOPATH=C:\\Users\\Administrator\\go 里面的bin文件。
```
go env -w GOBIN=/Users/Administrator/go/bin
```
在hello目录下写一个main.go,运行起来这样就完美了
```
package main
import"fmt"
funcmain() {
fmt.Println("hello,world")
}
```
参考:https://blog.csdn.net/qq_30549833/article/details/89569532
参考:https://blog.csdn.net/weixin_42656358/article/details/108847917
参考:https://www.cnblogs.com/wt11/p/11340386.html
- 安装开发环境
- 安装开发环境
- 安装详细教程
- 引入包
- Go语言基础
- 基本变量与数据类型
- 变量
- 数据类型
- 指针
- 字符串
- 代码总结
- 常量与运算符
- 常量
- 运算符
- 流程控制
- if判断
- for循环
- switch分支
- goto跳转
- 斐波那契数列
- Go语言内置容器
- 数组
- 切片
- 映射
- 函数
- 函数(上)
- 函数(中)
- 函数(下)
- 小节
- 包管理
- 结构体
- 结构体(上)
- 结构体(中)
- 结构体(下)
- 小节
- 错误处理
- 错误处理
- 宕机
- 错误应用
- 小节
- 文件操作
- 获取目录
- 创建和删除目录
- 文件基本操作(上)
- 文件基本操作(中)
- 文件基本操作(下)
- 处理JSON文件
- 接口与类型
- 接口的创建与实现
- 接口赋值
- 接口嵌入
- 空接口
- 类型断言(1)
- 类型断言(2)
- 小节
- 并发与通道
- goroutine协程
- runtime包
- 通道channel
- 单向通道channel
- select
- 线程同步
- 多线程的深入学习
- http编程
- http简介
- Client和Request
- get请求
- post请求
- 模块函数方法
- 模块
- fmt库,模块
- 项目练习
- 爬虫:高三网
- 爬虫:快代理
- 爬虫:快代理2
- 多线程:通道思路
- 多线程爬虫:快代理