如何学习 Go
Go 语言的设计初衷
- 针对其他语言的痛点进行设计
- 加入并发编程
- 为大数据,微服务,并发而生的通用编程语言
Go 语言很特别
- 没有”对象”,没有继承多态,没有泛型,没有 try/catch
- 有接口,函数式编程, CSP 并发模型( goroutine + channel )
- 学习 go 语言简单,应为语法简单
通过示例学习 Go
- 语法部分:每个小片段解决实际问题
- 综合部分:经典算法+典型例题+微型项目
- 实战项目部分:搭建分布式爬虫,结构复杂
学习概览
- 基本语法
- . 变量
- . 选择,循环
- . 指针,数组,容器
- 面向接口
- . 结构体
- . duck typing的概念
- . 组合的思想
- 函数式编程
- . 闭包的概念
- . 多样的例题
- 工程化
- . 资源管理,错误处理
- . 测试和文档
- . 性能调优
- 并发编程
- . goroutine 和 channel
- . 理解调度器
- . 多样的例题
项目实现
Go语言的安装
- 下载: studygolang.com/dl (国内镜像)
- 下载注意事项:
- Go 官方网址为 golang.org 访问较为困难所以使用国内镜像
- 安装包下载是注意选择 go1.13 或者以上版本, 1.13对镜像功能进行了完善
- 国内镜像配置
- 安装完成后可以使用
go version
查看 go 是否安装成功(请使用1.13或以上版本) - 通过
go env
查看镜像配置
- GOPROXY 是拉取依赖或者第三方库所访问的网址,如果可以提供则直接从网址中拉取,如果无法提供就 direct 从github库中拉取,图中网址为谷歌网址,建议替换为国内镜像库.
- 替换镜像命令: 终端执行
go env -w GOPROXY=https://goproxy.cn,direct
- GOMODULE(图中为GO111MODULE) 的值为
on/off
,当前默认为空. - 空的意思是当前目录在 GOPATH下为 on ,如果不在GOPATH下为 off
- 建议将其默认值打开,有时候 on 有时候 off 非常容易踩坑
- 打开 GOMODUL 命令:
go env -w GO111MODULE=on
- 安装 goimports
go get -v golang.org/x/tools/cmd/goimports
- (安装成功)
Go 开发环境
常用开发环境: vi,emacs,idea,eclipse,vscode,sublime… + go插件 或者直接使用 Goland 进行开发
- idea + go 插件的使用
- 安装 idea(Ultimate)
- 安裝 go 插件
- 选择右下角 configure -> plugins 搜索 go 进行安装
- 搜索 file watcher 进行安装 (每次保存运行代码可以按照go语言标准进行格式化)
- 创建项目
- 选择 Go Modules(vgo) 注意 Proxy 中的路径是否正确,如果是direct 记得替换成之前设置的
https://goproxy.cn,direct
- 设置goimports
- 打开设置 搜索 file watcher 点击新增 选择 goimports 点击确定
- goimpront 可以在保存时可以将代码格式化,没有添加的import自动添加上去并且排序,非常的方便
- vscode + go 插件
- vscode 对 go 的支持也非常的好,在使用go语法时未安装会自动跳出安装提示,按照提示安装即可
- 注意: vscode 运行 go 需要在命令行中执行相关文件即可.