# Go语言数据类型全解:从基础类型到复杂结构

本套课程是"跟宁哥学Go语言"系列的核心篇章,系统讲解Go语言中所有数据类型的定义、使用与底层原理。无论你是编程新手还是其他语言转型的开发者,这里都能帮你建立扎实的Go语言类型体系认知。

一、基础数值类型

课程从整数类型讲起,涵盖int、uint、int8、int16、int32、int64以及它们的无符号版本,详细解析各类型的取值范围和适用场景。浮点数部分对比float32和float64的精度差异,并说明在科学计算与工程应用中的选择策略。复数类型float32/cmplx则拓展了Go处理复数运算的能力。

布尔类型看似简单,但课程会深入讲解其在条件判断和位运算中的行为特征,帮助避免常见的逻辑错误。

二、字符串与编码

字符串是Go语言中最常用的类型之一。课程详细讲解转义符的用法,包括常见的、\t、\r以及十六进制、Unicode转义形式。接着深入探讨Unicode与UTF-8编码的关系,澄清两者常被混淆的概念——Unicode是字符集标准,UTF-8是编码方案。

字符串与字节数组的相互转换是实际开发中的高频操作,课程通过代码示例演示[]byte与string之间的转换方法及其性能考量。字符串与数字之间的转换则通过strconv包实现,覆盖整数、浮点数与字符串的双向转换。

三、常量系统

常量部分从基本的const声明讲起,重点讲解iota常量生成器的用法。iota是Go特有的枚举式常量生成器,课程通过多组实例演示如何在不同场景下利用iota简化常量定义,避免硬编码魔法数字。无类型常量与变量的区别也是考点之一,理解这一点有助于写出类型更精确的代码。

四、集合类型:数组、切片与Map

数组是定长序列,课程讲解其声明、初始化及遍历方式,并强调数组作为值类型的特性——赋值时会发生拷贝,这在性能敏感场景中需要特别注意。

切片是Go语言中最灵活的数据结构,课程深入讲解切片的底层结构(指针、长度、容量)、切片与数组的区别,以及如何使用append函数动态追加元素。append函数会触发扩容机制,课程会分析扩容策略,帮助理解切片的性能特征。

映射(map)部分涵盖map的声明、初始化、增删改查操作,以及遍历和并发安全注意事项。map作为哈希表实现,其查找时间复杂度为O(1),是Go中处理键值对数据的首选结构。

五、自定义类型:结构体

结构体是Go语言面向对象的基础。课程讲解struct的声明、字段访问、零值行为,以及匿名字段与方法嵌入的机制,为后续学习接口和方法集打下基础。

学习建议

建议按顺序学习每一节,数据类型是Go语言的核心基石,理解越扎实,后续学习指针、接口、并发等内容时就越轻松。每节课都配有实战代码示例,动手运行比被动观看效果更佳。掌握本套课程后,你将具备编写大多数Go语言程序所需的全部类型知识储备。

课程目录

课程目录17 集
  • 1 整数类型 (29:46).mp4
  • 2 浮点数 (18:38).mp4
  • 3 复数 (17:08).mp4
  • 4 布尔类型 (02:15).mp4
  • 5 字符串 (14:03).mp4
  • 6 字符串转义符 (08:25).mp4
  • 7 Unicode和UTF-8编码 (06:51).mp4
  • 8 字符串和字节数组 (17:03).mp4
  • 9 字符串与数字之间的转换 (14:14).mp4
  • 10 常量 (07:45).mp4
  • 11 iota常量生成器 (07:20).mp4
  • 12 无类型常量和变量 (05:36).mp4
  • 13 数组 (22:34).mp4
  • 14 切片 (15:14).mp4
  • 15 向切片追加新的元素(append函数) (07:23).mp4
  • 16 映射(map) (30:33).mp4
  • 17 结构体(struct) (05:34).mp4