Go语言快速入门
涛叔组内有同学想学习Go语言。趁这个机会整理一个入门系列文章分享给大家。本文权当是一个索引。
准备工作
简单介绍一下类UNIX下的学习环境。
函数结构
Go程序本质上就是一个函数,也就是main
函数。所以我决定以函数开篇。有了函数的概念,才方便介绍自定义类型和结构体函数。
类型系统
类型系统比较繁杂,我尝试用整体的思想系统的介绍一下。但是我不想重复市面上已有的材料和官方文章,本节介绍的内容面向初学者,点到为止,但更讲究逻辑上的系统性。
流程控制
从条件分支过度到 goto 语句,再将二者结合起来形成循环语句,最后从函数内流控跨越到函数间流控,也就是 panic/recover。还是以系统的思路来介绍。
错误处理本质上也是一类流程控制,但内容比较多,单独成文:
并发编程
先讲并发编程解决了什么问题,然后再说并发编程又导致了哪些问题。我从具体的问题出发讲解同步和争用两个主题的基础知识。
协程的 panic 需要特殊处理,学有余力的读者可以阅读另一篇文章:
工程设计
介绍Go语言的在工程设计上的各种取舍,包括但不限于:
- 模块体系
- 常用标准库
- 单元测试
- 性能测试
- 常用工具
综合示例
实现一个简单的 HTTP 文件下载服务器软件: