Golang 入门教程
Go语言
也称 Golang
,兼具效率、性能、安全、健壮等特性。
📚
Golang,用更少的代码,更短的编译时间,创建运行更快的程序,享受更多的乐趣。
本教程,一看就懂,一学就会,适合零基础的读者快速入门,也适合开发人员查阅知识点。
考虑到很多人是从其他语言转过来学习Go的,在讲一些知识点时,会和其它语言进行对比,让掌握其它编程语言的读者,能快速理解Go语言的特性。
目录
📖第1章 Go 简介
1.1. Go语言简介1.2. Go语言特性1.3. Go语言为并发而生1.4. 哪些项目使用Go语言开发?1.5. 哪些大公司正在使用Go语言1.6. Go语言的性能如何?1.7. Go语言标准库强大1.8. Go语言上手简单1.9. Go语言代码风格清晰、简单1.10. 在Windows上安装Go语言开发包1.11. 在Linux上安装Go语言开发包1.12. 在Mac OS上安装Go语言开发包1.13. Go语言集成开发环境1.14. Go语言工程结构详述1.15. 第一个Go语言程序1.16. Go语言程序的编译和运行1.17. Goland下载和安装1.18. Goland入门指南1.19. Goland常用快捷键1.20. LiteIDE搭建Go语言开发环境
📖第2章 Go 语法
2.1. Go语言变量的声明2.2. Go语言变量的初始化2.3. Go语言多个变量同时赋值2.4. Go语言匿名变量2.5. Go语言变量的作用域2.6. Go语言整型(整数类型)2.7. Go语言浮点类型(小数类型)2.8. Go语言复数2.9. 实例:输出正弦函数(Sin)图像2.10. Go语言bool类型(布尔类型)2.11. Go语言字符串2.12. Go语言字符类型(byte和rune)2.13. Go语言数据类型转换2.14. Go语言指针2.15. Go语言变量逃逸分析2.16. Go语言变量的生命周期2.17. Go语言常量2.18. Go语言模拟枚举2.19. Go语言类型别名2.20. Go语言注释的定义及使用2.21. Go语言关键字与标识符2.22. Go语言运算符的优先级2.23. Go语言字符串和数值类型的相互转换
📖第5章 Go 函数
5.1. Go语言函数声明5.2. 示例:将秒转换为具体的时间5.3. 示例:函数中的参数传递效果测试5.4. Go语言函数变量5.5. Go语言字符串的链式处理5.6. Go语言匿名函数5.7. Go语言函数类型实现接口5.8. Go语言闭包(Closure)5.9. Go语言可变参数5.10. Go语言defer(延迟执行语句)5.11. Go语言递归函数5.12. Go语言处理运行时错误5.13. Go语言宕机(panic)5.14. Go语言宕机恢复(recover)5.15. Go语言计算函数执行时间5.16. 示例:通过内存缓存来提升性能5.17. Go语言哈希函数5.18. Go语言函数的底层实现5.19. Go语言Test功能测试函数
📖第7章 Go 接口
7.1. Go语言接口声明(定义)7.2. Go语言实现接口的条件7.3. Go语言类型与接口的关系7.4. 接口的nil判断7.5. Go语言类型断言7.6. 示例:Go语言实现日志系统7.7. Go语言排序7.8. Go语言接口的嵌套组合7.9. Go语言接口和类型之间的转换7.10. Go语言空接口类型7.11. 示例:使用空接口实现可以保存任意值的字典7.12. Go语言类型分支7.13. Go语言error接口7.14. Go语言接口内部实现7.15. 示例:表达式求值器7.16. 示例:简单的Web服务器7.17. 部署Go语言程序到Linux服务器7.18. 示例:音乐播放器7.19. 示例:实现有限状态机(FSM)7.20. 示例:二叉树数据结构的应用
📖第8章 Go 包(package)
8.1. 包的基本概念8.2. Go语言封装简介及实现细节8.3. Go语言GOPATH8.4. Go语言常用内置包8.5. Go语言自定义包8.6. Go语言package8.7. Go语言导出包中的标识符8.8. Go语言import导入包8.9. Go语言工厂模式自动注册8.10. Go语言单例模式8.11. Go语言sync包与锁8.12. Go语言big包8.13. 示例:使用图像包制作GIF动画8.14. Go语言正则表达式:regexp包8.15. Go语言time包:时间和日期8.16. Go语言os包用法简述8.17. Go语言flag包:命令行参数解析8.18. Go语言go mod包依赖管理工具8.19. 示例:使用Go语言生成二维码8.20. Go语言Context(上下文)8.21. 示例:客户信息管理系统8.22. 示例:使用Go语言发送电子邮件8.23. Go语言(Pingo)插件化开发8.24. Go语言定时器实现原理及作用
📖第9章 Go 并发
9.1. Go语言并发简述9.2. Go语言轻量级线程9.3. Go语言并发通信9.4. Go语言竞争状态9.5. Go语言调整并发的运行性能9.6. 并发和并行的区别9.7. goroutine和coroutine的区别9.8. Go语言通道(chan)9.9. 示例:并发打印9.10. Go语言单向通道9.11. Go语言无缓冲的通道9.12. Go语言带缓冲的通道9.13. Go语言channel超时机制9.14. Go语言通道的多路复用9.15. Go语言模拟远程过程调用9.16. 示例:使用通道响应计时器的事件9.17. Go语言关闭通道后继续使用通道9.18. Go语言多核并行化9.19. Go语言Telnet回音服务器9.20. 检测代码在并发环境下可能出现的问题9.21. 互斥锁和读写互斥锁9.22. Go语言等待组9.23. 死锁、活锁和饥饿概述9.24. 示例:封装qsort快速排序函数9.25. Go语言CSP:通信顺序进程简述9.26. 示例:聊天服务器9.27. 高效地使用Go语言并发特性9.28. 使用select切换协程9.29. Go语言加密通信
提示
本教程提供的代码示例基于Go 1.23
版本测试运行。