Go 笔记 [toc] 这是一个对go的零基础学习笔记,参考文档为the-way-to-go。 旨在用最简单的语言记录下最重要的内容,一些不那么重要的东西就丢给外链吧。 环境与安装 IDE和工具 基本结构和数据类型 文件名、关键字、标识符 程序基本结构和要素 数据类型 常用类型处理函数 流程控制 if-else switch for break & continue 函数 参数与返回值 变长参数 defer和追踪 内置函数 递归函数 将函数作为参数 闭包 数组与切片 数组 切片 for-range 应用 map 初始化 删查 for-range map类型的切片 排序 key-value对调 包 标准库 regexp 锁和sync 精密计算 自定义包的可见性 自定义包使用godoc 使用go install安装自定义包 自定义包的目录结构 环境兼容代码 通过git打包和安装 使用外部库 方法和结构体 介绍 结构体定义 工厂方法构造结构体 使用自定义包中的结构体 带标签的结构体 匿名字段和内嵌结构体 方法 类型的格式化输出 垃圾回收 接口 简介 内嵌接口 断言 type_switch 方法集 案例1 Sorter接口 案例2_读写 空接口 反射 动态类型 结构体、集合和高阶函数 总结 读写 简介 文件读写 从命令行读取参数 用buffer读取文件 用切片读写文件 读写中的接口应用 json数据格式 xml数据格式 Gob传输数据 加密 异常和测试 简介 错误处理 运行时异常和panic 从panic中恢复 自定义包中的错误处理 闭包处理错误的模式 启动外部命令和程序 单元测试和基准测试 测试数据表驱动测试 性能调试:分析并优化Go程序 协程和通道 协程 通道 关闭通道 使用select切换协程 通道、超时和计时器 协程和恢复 新旧模型对比:任务和worker 惰性生成器 futures模式 多路复用 限制并发数 链式操作 多核运算 多核运算处理大量数据 漏桶算法 标杆分析 使用channel并发读取对象 网络应用 tcp服务器 web服务器 读取页面 一个简单的网页应用 让web应用更加健壮 在web应用中使用模板 Template扩展 一个完善的网页应用 RPC远程调用 netchan websocket SMTP 常见错误 举例 误用短声明导致变量覆盖 误用字符串 发生错误时使用defer关闭文件 使用指针指向接口类型 闭包和协程的使用 常见模式 逗号模式 defer模式 操作者模式和接口 常见代码片段 字符串 数组和切片 映射 结构体 接口 函数 读写文件 协程和通道 其他 好的建议 短网址项目 项目介绍 代码分析 数据存储gob 使用goroutine提高性能 使用json存储 多服务器多线程 proxyStore 著名项目 MROffice Atlassian Camlistore