Go-In-Action
@author 鲁伟林
记录《Go语言实战》中各章节学习过程,写下一些自己的思考和总结。希望维护管理此仓库,记录学习过程中部分心得,以与其他同行参考。
本博客中涉及的完整代码:
GitHub地址: https://github.com/thinkingfioa/go-learning
本人博客地址: https://blog.youkuaiyun.com/thinking_fioa
文中如若有任何错误,欢迎指出。个人邮箱: thinking_fioa@163.com
第1章 Go语言开始
1.1 Go语言介绍
Go语言的出现,实则为并发而出现的语言也不过为。Java语言中利用多线程机制可以较为方便的实现程序并发,提高程序并发度。Go语言并发较于Java更加细化,在线程基础,利用goroutine再并发一次,粒度更小。
学习Go语言最重要的是学会写并发,也就是写goroutine和通道(channel)
1.2 Go语言环境配置
鄙人写Go语言是使用GoLand工具。推荐使用。GoLand安装和Go语言环境安装自行Google或百度即可。
1.3 官方源码地址
项目中源码基本原型来自于《Go语言实战》书本中。书本源码情参考地址
第2章 快速开始一个Go程序
程序从不同的数据源拉取数据,将数据内容与一组所有项做对比,然后将匹配的内容显示在终端窗口。代码适合方便初学者学习。代码地址
第3章 打包和工具链
3.1 包
- 同一个目录下的.go文件必须声明同一个包名
- main包 ---- 命名为main的包具有特殊意义:使用声明main的包的代码所在的目录名作为二进制可执行文件的文件名
3.2 导入
- import导入包顺序 ---- 编译器首先查找Go的安装目录(GOROOT),然后才会按照顺序查找GOPATH变量里列出的目录
- 命名导入 ---- 在import语句给出包路径的左侧定义一个名字,将导入的包命名为新的名字(用于解决重名的包)。如果只是导入而不想使用,使用下划线字符(_)(空白标识符)
3.3 函数init
init函数在程序执行开始的时候被调用。所有被编译器发现的init函数都会安排在main函数之前执行
func init() {
...
}
3.4 使用Go的工具
- go build ---- 编译
- go clean ---- 清理
- go run ---- 执行
3.5 进一步介绍Go开发工具
3.5.1 Go代码格式化
go fmt用户格式化Go语言代码。GoLand工具可以在Go文件保存之前自动格式化,配置方式: Tools -> File Watchers -> go fmt
3.5.2 Go语言依赖管理工具
dep依赖管理工具学习,dep是官方版本。如果想系统学习dep依赖管理工具如何使用,请参考博客