Logo
☆☆☆☆☆
0.0
Intermediate
25h

Go语言之路

Go(有时称为 Golang)是当今最受欢迎的编程语言之一,也是许多企业技术栈中的关键组成部分。许多开发者更倾向于选择 Go 而不是 C++ 或 Scala,原因在于其内存管理机制使得并发编程更加简单。 在本课程中,你将学习该语言的核心语法和编程技巧。在掌握基础知识后,你将进一步了解 Go 的高级概念,如错误处理、网络编程和模板使用。通过掌握常见的陷阱与设计模式,并亲手构建自己的应用程序,你将学会如何高效地使用 Go 进行编程。

17 Lessons
Included in Subscription Plan
Personalized Learning
Powered by AI
Go语言之路
Go(有时称为 Golang)是当今最受欢迎的编程语言之一,也是许多企业技术栈中的关键组成部分。许多开发者更倾向于选择 Go 而不是 C++ 或 Scala,原因在于其内存管理机制使得并发编程更加简单。 在本课程中,你将学习该语言的核心语法和编程技巧。在掌握基础知识后,你将进一步了解 Go 的高级...

Content

17 Lessons • 0 Quizzes • 0 Challenges

Go语言的起源、背景与流行度
  1. 1

    Go语言的起源与演进

  2. 2

    开发 Go 语言的原因

  3. 3

    Go 的特性

  4. 4

    自我测试

基本结构与基础数据类型
  1. 1

    文件名、关键字和标识符

  2. 2

    导入功能

  3. 3

    函数概述

  4. 4

    数据类型概述

  5. 5

    常量

  6. 6

    变量

  7. 7

    变量的作用域

  8. 8

    基本类型

  9. 9

    运算符

  10. 10

    挑战:温度转换

  11. 11

    解决方案回顾:温度转换

  12. 12

    字符串

  13. 13

    字符串和 strconv 包

  14. 14

    时间与日期

  15. 15

    指针

  16. 16

    测验:推断输出结果

控制结构
  1. 1

    if-else 语句

  2. 2

    函数中的错误检测

  3. 3

    switch-case 语句结构

  4. 4

    挑战:一个月的季节

  5. 5

    解决方案回顾:一个月的季节

  6. 6

    for 循环结构

  7. 7

    for range 语句

  8. 8

    Break 和 Continue

  9. 9

    标签的使用 - goto

  10. 10

    练习:推导输出结果

函数
  1. 1

    函数简介

  2. 2

    参数和返回值

  3. 3

    挑战:多个返回值

  4. 4

    解决方案回顾:多个返回值

  5. 5

    挑战:可变数量的参数

  6. 6

    解决方案回顾:可变数量的参数

  7. 7

    延迟执行与追踪

  8. 8

    内置函数

  9. 9

    递归函数

  10. 10

    挑战:计算一个数的阶乘

  11. 11

    解决方案回顾:计算一个数的阶乘

  12. 12

    高阶函数

  13. 13

    挑战:筛选偶数和奇数

  14. 14

    解决方案回顾:筛选偶数和奇数

  15. 15

    闭包

  16. 16

    函数作为返回值

  17. 17

    使用闭包进行调试

  18. 18

    优化程序

  19. 19

    测验:推断输出结果

数组和切片
  1. 1

    声明与初始化

  2. 2

    数组字面量和参数

  3. 3

    挑战:使用循环计数器填充数组

  4. 4

    解答回顾:使用循环计数器填充数组

  5. 5

    挑战:使用数组查找斐波那契数

  6. 6

    解答回顾:使用数组查找斐波那契数

  7. 7

    切片

  8. 8

    函数中的切片

  9. 9

    挑战:使用切片查找斐波那契数

  10. 10

    解决方案回顾:使用切片查找斐波那契数

  11. 11

    多维性

  12. 12

    字节与切片

  13. 13

    for-range 语句

  14. 14

    重新切片

  15. 15

    复制和追加切片

  16. 16

    挑战:放大切片

  17. 17

    解决方案回顾:放大切片

  18. 18

    挑战:在切片中插入切片

  19. 19

    解决方案回顾:在切片中插入切片

  20. 20

    挑战:使用高阶函数进行过滤

  21. 21

    解决方案回顾:使用高阶函数进行过滤

  22. 22

    应用字符串、数组和切片

  23. 23

    挑战:对切片进行冒泡排序

  24. 24

    解决方案回顾:对切片进行冒泡排序

  25. 25

    挑战:反转字符串

  26. 26

    解决方案回顾:反转字符串

  27. 27

    测验:推断输出结果

映射
  1. 1

    声明与初始化

  2. 2

    键值项的存在性

  3. 3

    for range 语句

  4. 4

    挑战:映射天数

  5. 5

    解决方案回顾:映射星期

  6. 6

    映射的切片

  7. 7

    排序和反转一个映射

  8. 8

    测验:推断输出结果

包
  1. 1

    标准库概述

  2. 2

    挑战:构建一个双向链表

  3. 3

    解决方案回顾:构建一个双向链表

  4. 4

    正则表达式包

  5. 5

    锁与 sync 包

  6. 6

    精确计算与大型软件包

  7. 7

    自定义包与可见性

  8. 8

    记录你的包

  9. 9

    自定义包:文件夹结构、go install 与 go test

  10. 10

    使用 Git 进行分发

  11. 11

    外部包、项目和库

  12. 12

    安装外部包

结构体和方法
  1. 1

    结构体简介

  2. 2

    高级结构体概念

  3. 3

    工厂方法

  4. 4

    带有标签的结构体

  5. 5

    匿名字段和嵌入结构体

  6. 6

    挑战:匿名结构体

  7. 7

    解决方案回顾:匿名结构体

  8. 8

    方法简介

  9. 9

    方法与函数

  10. 10

    挑战:点的坐标

  11. 11

    解决方案回顾:点的坐标

  12. 12

    挑战:创建一个矩形

  13. 13

    解决方案回顾:创建一个矩形

  14. 14

    挑战:决定员工薪资

  15. 15

    解决方案回顾:决定员工薪资

  16. 16

    接收者和方法作为指针与值

  17. 17

    非导出字段

  18. 18

    String() 方法和格式化说明符

  19. 19

    嵌入类型的方法

  20. 20

    多重继承

  21. 21

    挑战:实现栈数据结构

  22. 22

    解决方案回顾:实现栈数据结构

  23. 23

    垃圾回收与 SetFinalizer

  24. 24

    测验:推断输出结果

接口与反射
  1. 1

    什么是接口?

  2. 2

    挑战:创建简单接口

  3. 3

    解决方案回顾:创建一个简单接口

  4. 4

    嵌入式接口与类型断言

  5. 5

    类型开关

  6. 6

    挑战:推进简单的接口

  7. 7

    解决方案回顾:推进简单接口

  8. 8

    接口的实现

  9. 9

    使用 Sorter 接口进行排序

  10. 10

    挑战:推进形状分析

  11. 11

    解决方案回顾:深化形状分析

  12. 12

    挑战:使用 Sorter 接口对人员进行排序

  13. 13

    解决方案回顾:使用 Sorter 接口对人员进行排序

  14. 14

    读取和写入

  15. 15

    空接口

  16. 16

    挑战:实现矿工接口

  17. 17

    解决方案回顾:实现矿工接口

  18. 18

    reflect 包

  19. 19

    Printf 和反射

  20. 20

    接口与动态类型

  21. 21

    结构体、集合与高阶函数

  22. 22

    挑战:实现一个支持多种内部类型的栈

  23. 23

    解决方案回顾:创建一个内部类型可变的栈

  24. 24

    Go 中的面向对象编程

  25. 25

    测验:推断输出结果

读取和写入
  1. 1

    从用户读取输入

  2. 2

    挑战:分析来自键盘的输入

  3. 3

    解决方案回顾:分析键盘输入

  4. 4

    从文件读取数据

  5. 5

    向文件写入数据

  6. 6

    挑战:读取CSV文件

  7. 7

    解决方案回顾:读取 CSV 文件

  8. 8

    挑战:编写维基页面

  9. 9

    解决方案回顾:向维基页面写入内容

  10. 10

    复制文件

  11. 11

    从命令行读取参数

  12. 12

    使用缓冲区读取文件

  13. 13

    使用切片读写文件

  14. 14

    扫描输入

  15. 15

    接口的一个实际示例

  16. 16

    JSON 数据格式

  17. 17

    使用 JSON 解码

  18. 18

    XML 数据格式

  19. 19

    通过 gob 进行数据传输

  20. 20

    挑战:解码内容

  21. 21

    解决方案回顾:解码内容

  22. 22

    Go语言中的密码学

  23. 23

    练习:推导输出结果

错误处理与测试
  1. 1

    错误处理

  2. 2

    运行时异常与恐慌

  3. 3

    恢复

  4. 4

    用户自定义包中的错误处理与恐慌

  5. 5

    带有闭包的错误处理机制

  6. 6

    挑战:通过除以零引发恐慌

  7. 7

    解决方案回顾:从除以零产生恐慌

  8. 8

    启动外部命令或程序

  9. 9

    Go 中的测试与基准测试

  10. 10

    测试:一个具体示例

  11. 11

    使用表格驱动测试

  12. 12

    性能分析

  13. 13

    练习:推导输出结果

协程和通道
  1. 1

    使用 Go 处理并发与并行

  2. 2

    实现协程

  3. 3

    通道简介

  4. 4

    同步与异步通信

  5. 5

    挑战:演示阻塞特性

  6. 6

    解决方案回顾:演示阻塞特性

  7. 7

    信号量模式

  8. 8

    通道工厂与生产者-消费者模式

  9. 9

    挑战:求整数的和

  10. 10

    解决方案回顾:求整数的和

  11. 11

    通道方向性

  12. 12

    协程的同步

  13. 13

    在协程之间切换

  14. 14

    挑战:设计一个随机位生成器

  15. 15

    解决方案回顾:设计随机位生成器

  16. 16

    挑战:将极坐标点映射为笛卡尔坐标点

  17. 17

    解决方案回顾:将极坐标点映射为笛卡尔坐标点

  18. 18

    通道、超时和计时器

  19. 19

    使用 recover 处理协程中的异常

  20. 20

    任务与工作进程

  21. 21

    实现一个惰性生成器

  22. 22

    匿名闭包

  23. 23

    实现 Future

  24. 24

    多路复用

  25. 25

    限制请求数量

  26. 26

    计算的链式调用与并行化

  27. 27

    漏桶算法

  28. 28

    基准测试、访问与监听

  29. 29

    练习:推导输出结果

网络编程、模板引擎与Web应用
  1. 1

    TCP 服务器

  2. 2

    一个简单的 Web 服务器

  3. 3

    轮询网站并读取网页内容

  4. 4

    编写一个简单的Web应用程序

  5. 5

    挑战:统计信息网页应用

  6. 6

    解决方案回顾:统计信息网页应用

  7. 7

    使Web应用程序更加健壮

  8. 8

    使用模板编写网页应用

  9. 9

    探索模板包

  10. 10

    挑战:用于接待访客的Web应用程序

  11. 11

    解决方案回顾:用于接待访客的Web应用程序

  12. 12

    一个复杂的网络服务器

  13. 13

    远程过程调用(RPC)

  14. 14

    使用SMTP发送邮件

  15. 15

    Go 云上应用

Go 常见陷阱与编程模式
  1. 1

    常见错误及建议

  2. 2

    前几章要点回顾

  3. 3

    逗号加 ok 模式

  4. 4

    defer模式

  5. 5

    可见性与操作符模式

性能建议
  1. 1

    字符串、数组和切片

  2. 2

    结构体、接口和映射

  3. 3

    函数和文件

  4. 4

    协程与网络编程

  5. 5

    建议与注意事项

构建一个完整的应用程序
  1. 1

    简介

  2. 2

    设置应用程序的结构

  3. 3

    我们的用户界面

  4. 4

    使用 gob 进行持久化存储

  5. 5

    使用协程提升性能

  6. 6

    使用 JSON 进行持久化存储

  7. 7

    增强功能

附录
  1. 1

    平台与架构

  2. 2

    以二进制格式安装 Go 及其工具链

  3. 3

    从源码安装 Go

  4. 4

    Go 开发环境

  5. 5

    Go 环境的基本要求

  6. 6

    编辑器和集成开发环境

  7. 7

    调试

  8. 8

    代码格式化

  9. 9

    构建和运行 Go 程序

  10. 10

    寻找帮助与编写代码注释

  11. 11

    工具与 Go 语言的性能

  12. 12

    与 C 和 C++ 的交互

  13. 13

    有用的资源

Certificate of Completion

Showcase your accomplishment by sharing your certificate of completion.

Course Author:Anonymous User

Reviews

Read reviews from students who have taken this course and share your own experience.

Reviews & Comments (0)