# Goglang基础教程【译】

本中文教程翻译自[Golang tutorial series](https://golangbot.com/learn-golang-series/)，原文作者是[Naveen Ramanathan](https://twitter.com/msgtonaveen)。这里需要说明下，本教程有不少内容是**意译**的，而且有几节目录结构也根据我个人的理解重新进行了调整，比如**接口**部分，之前是单独一个章节，我调整到了**面向对象编程**部分。个人感觉这个Golang教程非常简单，适合入门，因此翻译过来。

### 目录

**介绍**

[1. 安装](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/jie-shao/an-zhuang)

[2. Hello World](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/jie-shao/hello-world)

**变量、基本类型以及常量**

[1. 变量](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/bian-liang-leixing-chang-liang/bian-liang)

[2. 基本类型](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/bian-liang-leixing-chang-liang/ji-ben-lei-xing)

[3. 常量](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/bian-liang-leixing-chang-liang/chang-liang)

**函数和包**

[1. 函数](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/han-shu-he-bao/han-shu)

[2. 包](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/han-shu-he-bao/bao)

**条件、循环流程控制语句**

[1. if else条件语句](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/tiao-jian-xun-huan/if-else-tiao-jian-yu-ju)

[2. switch语句](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/tiao-jian-xun-huan/switch-yu-ju)

[3. 循环语句](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/tiao-jian-xun-huan/xun-huan-yu-ju)

**数组、切片、变参函数**

[1. 数组(Array)](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/shu-zu-qie-pian-bian-can-han-shu/shu-zu-array)

[2. 切片(Slice)](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/shu-zu-qie-pian-bian-can-han-shu/qie-pian-slice)

[3. 变参函数](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/shu-zu-qie-pian-bian-can-han-shu/bian-can-han-shu)

**其他数据类型**

[1. 映射(Map)](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/qi-ta-shu-ju-lei-xing/ying-she-map)

[2. 字符串](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/qi-ta-shu-ju-lei-xing/zi-fu-chuan)

**指针、结构体和方法**

[1. 指针](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/zhi-zhen-jie-gou-ti-fang-fa/zhi-zhen)

[2. 结构体](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/zhi-zhen-jie-gou-ti-fang-fa/jie-gou-ti)

[3. 方法](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/zhi-zhen-jie-gou-ti-fang-fa/fang-fa)

**面向对象编程**

[1. 结构体 vs 类](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/mian-xiang-dui-xiang-bian-cheng/shi-jie-gou-ti-er-bu-shi-lei)

[2. 组合 vs 继承](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/mian-xiang-dui-xiang-bian-cheng/shi-zu-he-er-bu-shi-ji-cheng)

[3. 接口](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/mian-xiang-dui-xiang-bian-cheng/jie-kou)

[4. 多态](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/mian-xiang-dui-xiang-bian-cheng/duo-tai)

**并发**

[1. 并发介绍](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/bing-fa/bing-fa-jie-shao)

[2. 协程(goroutine)](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/bing-fa/xie-cheng-goroutine)

[3. 管道(channel)](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/bing-fa/guan-dao-channel)

[4. 带缓存的管道(buffered channel)](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/bing-fa/dai-huan-cun-de-guan-dao-buffered-channel)

[5. 协程池](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/bing-fa/xie-cheng-chi)

[6. 管道选择器(select)](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/bing-fa/guan-dao-xuan-ze-qi-select)

[7. 互斥锁(Mutex)](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/bing-fa/hu-chi-suo-mutex)

**Defer**

**一等公民函数**

**反射**

**错误**

[1. 错误处理](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/cuo-wu/cuo-wu-chu-li)

[2. 自定义错误类型](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/cuo-wu/zi-ding-yi-cuo-wu-lei-xing)

[3. panic和recover](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/cuo-wu/panic-he-recover)

**文件读写**

[1. 读文件](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/wen-jian-du-xie/du-wen-jian)

[2. 写文件](https://sunwenfei.gitbook.io/sunwenfei/golang/golang-ji-chu-jiao-cheng/wen-jian-du-xie/xie-wen-jian)
