Golang 入门

本课程将通过实践操作和挑战,指导您掌握 Go 编程。您将学习关键概念,例如编写您的第一个程序、管理包、使用数据类型、控制流,以及 Go 特有的功能,如切片(slices)、映射(maps)、通道(channels)和匿名函数,从而打下坚实的基础,以应对实际的编程任务。

Go 语言

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

大纲

Go 编程入门指南

打造个性化的 Go 语言问候程序

GOPATH 与 Go Modules

构建模块化 Go 项目

创建和导入 Go 包

构建数学工具包

Go 变量简介

构建图书库存变量

Golang 运算符与数据处理

计算商品折扣价格

Golang 中的数值类型

数值类型转换与计算

Golang 中的字符类型

解码 Unicode 表情符号

Go 字符串基础

处理用户注册字符串

Go 常量基础

定义服务器规格常量

Golang 中的 If 分支语句

使用条件逻辑对任务进行分类

Golang 中的 Switch-Case 分支语句

实现天气建议选择器

Go 语言中的 For 循环

使用 Go 循环实现字符串反转

Goto 语句使用指南

使用 Goto 优化嵌套循环复杂度

Go 语言中的数组操作

初始化员工姓名数组

Golang 中的多维数组

设计学生成绩追踪器

Golang 切片数据结构

切片日志过滤器挑战

Go 字典基础

使用 Go 映射管理学生成绩

Go 字典排序

动态排序学生成绩

Golang 通道基础

构建简单的通道数据流水线

Go 语言中的结构体

在 Go 中设计学生结构体

Go 语言中的函数

设计灵活的数学函数

Go 语言中的匿名函数

设计灵活的数学变换

简介

通过 44 个动手实验建立广泛的 Go 基础;这些实验组成 22 组“引导实验 + 挑战”。你将在配套 WebIDE 中编写和运行程序,先通过示例学习概念,再用一个聚焦任务检验能否独立应用。

课程从语法、module、package 和数据类型开始,继续学习控制流与 Go 的核心集合,后期进入 struct、灵活的函数模式和 channel。因此学习路径虽从 Beginner 起步,却包含多个 Intermediate 挑战和一个 Advanced channel pipeline 挑战。

你将学到什么

完成本课程后,你将能够:

  • 编写并运行基础 Go 程序,解释程序结构,并使用常见 fmt 函数。
  • 用 Go Modules 和 package 组织项目、管理 import,并区分导出与未导出函数。
  • 声明变量和常量,使用运算符、数值、布尔、字符串、byte、rune、Unicode 与 iota。
  • 使用 if、switch、for、break、continue 以及有针对性的 goto 表达判断和循环。
  • 在数组、多维数组、slice 和 map 中创建、遍历、更新、复制、筛选与排序数据。
  • 定义和初始化 struct,将相关值组织为清晰的数据模型。
  • 编写具有多返回值和可变参数的函数,并把匿名函数用于立即调用和 callback。
  • 创建有类型和方向限制的 channel,并在简单数据 pipeline 中连接 producer 与 consumer goroutine。

本课程适合谁

本课程适合希望在每个主题后都进行练习、系统学习 Go 语言的初学者,也适合从其他语言转向 Go、需要亲手掌握 module、集合、函数和 channel 模型的程序员。

前置要求: 无需 Go 经验。你应能输入命令并编辑源文件;如果了解变量、条件、循环和函数等基本编程概念,学习节奏会更轻松。

学习环境: 44 个实验均在配套的 Ubuntu 22.04 WebIDE 中运行,环境已提供 Go 工具。你将主要使用终端和编辑器,每个引导主题之后都有一个短编程挑战。

常见问题

44 个实验如何组织?

它们组成 22 个主题对:引导实验讲解并演示一个 Go 概念,随后对应挑战要求你用该概念实现一个小程序或函数。

所有练习都是 Beginner 难度吗?

不是。引导实验标为 Beginner,但多个应用挑战为 Intermediate,producer-consumer channel pipeline 则为 Advanced。课程前期平缓,后期任务需要更多独立推理。

课程对 Go 并发讲到多深?

课程介绍 channel 的声明、初始化、发送与接收、阻塞行为、单向 channel,以及简单 goroutine pipeline;不覆盖更广泛的生产并发模式、同步原语、取消机制或分布式系统。

会构建 Web 服务或数据库应用吗?

不会。所列课程聚焦 Go 语言和小型命令行程序;HTTP server、framework、database、测试 package 与生产服务架构均不在范围内。

教师

labby
Labby
Labby is the LabEx teacher.