入门
变量与常量
Go变量作用域
教程文章Go变量作用域由声明位置决定,分全局、局部、块作用域。本文详解作用域层级、变量可见性规则及作用域陷阱。
Go变量初始化
教程文章Go变量初始化方式多样,包括零值初始化、显式赋值、函数调用初始化。本文详解初始化时机、方式及最佳实践。
Go变量声明
教程文章Go变量声明使用var关键字或短变量声明:=。本文详解var声明、短变量声明、批量声明及声明规则。
Go基本数据类型
教程文章Go提供丰富的内置基本数据类型。本文详解整数、浮点数、布尔、字符串类型及其特性。
Go常量定义与iota
教程文章Go常量使用const定义,不可修改。本文详解常量声明、iota枚举生成器、无类型常量及常量表达式。
Go类型转换
教程文章Go类型转换必须显式进行,不支持隐式转换。本文详解数值转换、字符串转换及类型断言用法。
Go零值机制
教程文章Go变量声明后自动初始化为零值,避免未初始化问题。本文详解各类型零值、零值用途及与nil的关系。
流程控制
Go循环语句for
教程文章Go只有for循环,语法灵活支持多种形式。本文详解for基本语法、while模拟、无限循环及循环控制。
Go循环语句range
教程文章Go range用于遍历数组、切片、map、字符串等集合。本文详解range遍历各类型、返回值规则及常见陷阱。
Go条件分支语句switch-case
教程文章Go switch语句简洁灵活,默认break无需显式写。本文详解switch基本语法、多值匹配、无表达式switch及fallthrough用法。
Go条件语句if-else
教程文章Go if-else条件语句简洁灵活,支持条件内声明变量。本文详解if基本语法、else分支、条件初始化及嵌套使用。
Go跳转语句break和continue
教程文章Go break退出循环,continue跳过当前迭代。本文详解break/continue用法、标签控制多层循环及与goto的区别。
函数
Go函数作为值与高阶函数
教程文章Go函数是一等公民,可作为值传递、作为参数和返回值。本文详解函数类型、回调模式、闭包工厂与函数式编程技巧。
Go函数参数与返回值
教程文章Go支持多参数、多返回值和命名返回值。本文详解参数传递方式、返回值类型、命名返回值与init函数使用。
Go函数定义与声明
教程文章Go函数定义简洁,使用func关键字。本文详解函数声明语法、命名规则、参数列表与函数体结构。
Go匿名函数与闭包
教程文章Go支持匿名函数和闭包,闭包可捕获外部变量。本文详解匿名函数定义、闭包特性、闭包陷阱及常见用法。
Go延迟执行defer
教程文章defer延迟执行函数,常用于资源释放。本文详解defer执行顺序、参数评估时机、defer栈特性及常见用法。
Go错误处理与panic/recover
教程文章Go错误处理使用返回值而非异常。本文详解error接口、panic/recover机制、错误处理最佳实践。
复合数据类型
方法与接口
Go值接收者与指针接收者
教程文章Go方法接收者可以是值或指针,影响方法行为和接口满足。本文详解两种接收者的区别、选择原则及注意事项。
Go接口与多态
教程文章Go接口实现多态,不同类型可满足同一接口。本文详解多态原理、接口赋值、动态调用及多态应用场景。
Go接口定义与实现
教程文章Go接口定义方法签名集合,类型隐式实现接口。本文详解接口定义语法、实现规则、接口变量使用。
Go接口嵌套
教程文章Go接口可以嵌套组合,形成更大接口。本文详解接口嵌入语法、组合接口、标准库组合示例及嵌套规则。
Go接口的底层值
教程文章Go接口内部包含类型信息和数据指针。本文详解接口底层结构、eface与iface、nil接口陷阱及内部机制。
Go方法定义与声明
教程文章Go方法是与类型关联的函数,使用接收者声明。本文详解方法语法、接收者类型、方法调用及与函数的区别。
Go方法集
教程文章Go方法集决定类型满足哪些接口。本文详解值类型与指针类型的方法集、接口满足规则及方法集陷阱。
Go空接口
教程文章Go空接口interface{}无方法约束,任何类型都满足。本文详解空接口定义、用法、类型断言及与具体接口的区别。
Go类型断言
教程文章Go类型断言从接口获取具体类型值。本文详解断言语法、安全断言、类型转换及常见用法。
Go类型选择
教程文章Go类型选择用于处理接口的多种可能类型。本文详解type switch语法、类型分支处理及与类型断言的区别。
进阶
标准库
Go encoding/json包
教程文章Go标准库encoding/json提供JSON编码和解码功能。本文详解结构体序列化、JSON标签、Marshal/Unmarshal函数及流式处理。
Go flag包
教程文章Go标准库flag提供命令行参数解析功能。本文详解flag注册、解析、默认值设置及自定义参数类型。
Go fmt包
教程文章Go标准库fmt提供格式化输入输出功能。本文详解Print系列函数、格式化动词、Sprintf/Fprintf及Scan系列函数。
Go http包
教程文章Go标准库net/http提供HTTP客户端和服务端实现。本文详解HTTP请求处理、路由注册、中间件模式、服务端启动及客户端请求。
Go io包
教程文章Go标准库io提供基本I/O操作接口。本文详解Reader/Writer接口、Copy/ReadAll函数、多Reader/Writer组合及实用工具。
Go log包
教程文章Go标准库log提供简单日志功能。本文详解log.Print系列、Fatal/Panic函数、自定义Logger及日志配置。
Go net包
教程文章Go标准库net提供网络通信接口。本文详解TCP/UDP连接、DNS解析、IP地址处理、端口监听及客户端服务端实现。
Go os包
教程文章Go标准库os提供操作系统功能接口。本文详解文件操作、目录管理、环境变量、进程信息及系统调用。
Go strconv包
教程文章Go标准库strconv提供字符串与基本类型的转换。本文详解Parse系列、Format系列、Append系列及布尔值转换。
Go strings包
教程文章Go标准库strings提供字符串操作函数。本文详解字符串查找、分割、拼接、替换、大小转换及判断函数。
Go time包
教程文章Go标准库time提供时间和日期处理功能。本文详解时间获取、格式化、解析、Duration计算及定时器使用。
运行时
Go垃圾回收机制
教程文章Go采用并发三色标记清除垃圾回收,STW时间极短。本文详解GC算法原理、写屏障、触发时机及调优方法。
Go Goroutine与GMP模型
教程文章Go调度器采用GMP模型实现高效并发,G代表Goroutine,M代表Machine线程,P代表Processor处理器。本文详解调度原理、工作窃取及抢占机制。
Go接口与类型系统
教程文章Go接口底层使用eface和iface结构,类型系统支持静态类型检查。本文详解接口实现原理、类型断言开销及动态派发机制。
Go系统调用与网络轮询器
教程文章Go运行时通过netpoller实现高效的网络I/O,使用非阻塞系统调用和事件驱动机制。本文详解网络轮询器原理、系统调用封装及调度集成。
Go运行时内存管理
教程文章Go运行时使用mcache、mcentral、mheap三级缓存管理内存,采用tcmalloc思想,高效分配小对象。本文详解内存分配层级、Span管理及内存复用。
工程化与工具链
Go包管理与依赖管理
教程文章Go使用go.mod管理依赖,支持语义化版本和最小版本选择。本文详解go.mod结构、go mod命令、依赖版本管理及私有仓库配置。
Go代码格式化与静态分析工具
教程文章Go内置gofmt格式化和go vet静态分析工具,保证代码风格统一和潜在问题检测。本文详解工具使用、常见检查项及配置。
Go反射与代码生成
教程文章Go反射在运行时检查类型信息,常用于通用框架和序列化。本文详解reflect包核心函数、Type和Value操作、反射限制及应用场景。
Go文档生成
教程文章Go内置godoc工具自动从代码注释生成文档。本文详解godoc使用、注释规范、Web文档服务及本地文档查看。
Go构建与交叉编译
教程文章Go支持交叉编译,通过GOOS和GOARCH设置目标平台。本文详解go build命令、交叉编译配置、构建选项及输出控制。
Go配置管理与环境变量
教程文章Go使用os包读取环境变量,结合配置文件实现灵活配置管理。本文详解环境变量操作、配置加载、敏感信息处理及最佳实践。
Go项目结构与代码组织
教程文章Go推荐标准化项目结构,cmd存放主程序,internal存放私有代码,pkg存放公开代码。本文详解目录结构、命名规范及组织原则。
专家
并发编程
Go Channel同步与多路复用详解
教程文章Channel是Go并发通信的核心。本文详解channel同步机制、select多路复用、超时控制、关闭处理及常见模式。
Go Context上下文控制详解
教程文章Context用于控制goroutine生命周期。本文详解context创建、传递、取消机制及请求超时、取消传播的最佳实践。
Go Goroutine与并发模型详解
教程文章Goroutine是Go并发的基础单元。本文详解GMP调度模型、goroutine生命周期、调度策略及性能调优参数。
Go channel类型与通信详解
教程文章Channel是goroutine间通信的核心。本文详解无缓冲与有缓冲channel、双向与单向channel、关闭处理及通信语义。
Go goroutine基本概念与创建
教程文章Goroutine是Go轻量级并发单元。本文详解goroutine概念、创建方式、特性与普通线程对比及基本使用注意事项。
Go常见并发模式详解
教程文章Go并发模式简洁高效。本文详解worker pool、pipeline、fan-in/fan-out、errgroup、graceful shutdown等经典模式实现。
Go并发同步原语详解
教程文章Go sync包提供Mutex、RWMutex、WaitGroup、Once、Cond等同步原语。本文详解各原语用法、适用场景及常见陷阱。
Go竞态检测与并发调试详解
教程文章数据竞争是并发bug的主要来源。本文详解race detector使用、竞态诊断、常见竞态模式及并发程序调试技巧。
内存管理与性能优化
Go内存分配原理详解
教程文章Go内存分配采用mcache-mcentral-mheap三层结构,实现高效无锁分配。本文详解各层职责、size class、span机制及分配流程。
Go内存逃逸分析详解
教程文章Go编译器通过逃逸分析决定变量分配位置:栈或堆。本文详解逃逸判定规则、逃逸场景、优化方法及分析命令使用。
Go减少内存分配实践
教程文章减少内存分配可降低GC压力、提升性能。本文详解预分配、复用、sync.Pool、字符串优化等实用技巧。
Go同步与锁优化(内存性能视角)
教程文章锁竞争不仅影响并发性能,也影响内存行为。本文详解锁的内存开销、锁优化策略、无锁技术及sync包组件选择。
Go垃圾回收机制深度解析
教程文章Go使用并发三色标记清除GC算法,STW时间控制在微秒级。本文详解GC触发条件、三色标记原理、写屏障机制及调优方法。
Go并发内存模型详解
教程文章Go并发内存模型定义了多goroutine间的内存可见性规则。本文详解happens-before规则、内存屏障、同步原语语义及数据竞争避免。
Go性能分析工具使用(内存排查)
教程文章Go提供pprof、trace等性能分析工具。本文详解内存分配分析、heap dump、GC压力排查及优化定位方法。
Go指针与引用优化实践
教程文章Go中指针使用需权衡逃逸与拷贝成本。本文详解指针vs值传递选择、逃逸影响、常见优化场景及性能测试方法。
Go数据对齐与缓存优化
教程文章CPU缓存和内存对齐影响访问性能。本文详解数据对齐规则、缓存行、struct布局优化及缓存友好编程技巧。
Go栈与堆的区别详解
教程文章栈分配快零成本,堆分配触发GC。本文详解栈堆分配机制、逃逸判定、性能差异及优化原则。
接口设计与最佳实践
Go接口(interface)的定义与实现
教程文章Go接口定义方法签名,实现者隐式满足。本文详解接口定义语法、实现规则、空接口与类型断言。
Go性能考量与接口优化
教程文章接口设计影响程序性能。本文详解接口调用开销、逃逸影响、减少装箱技巧及性能优化原则。
Go接口设计原则与SOLID原则
教程文章SOLID原则指导接口设计。本文详解Go中的单一职责、接口隔离、依赖倒置原则及Go特有的接口设计实践。
Go版本管理与向后兼容性
教程文章Go模块版本管理遵循语义化版本规范。本文详解go.mod管理、版本号规则、接口变更兼容性策略及升级迁移实践。
Go错误处理与接口设计
教程文章错误处理是接口设计的重要部分。本文详解错误接口定义、自定义错误类型、错误包装与检查最佳实践。
