所有文章
17 篇文章,关于软件工程、系统设计和 AI 的深度思考
go-TCP/HTTP网络编程
Go 被誉为“云原生时代的 C 语言”,其网络编程能力是核心优势。
Go-Reflection反射
反射是 Go 语言中一个非常强大但需要谨慎使用的特性。它允许程序在运行时检查、修改变量的类型和值,而不需要在编译时知道具体的类型。
go-UnitTest单元测试
在 Go 语言中,单元测试是语言设计中的一等公民。Go 自带了强大的测试工具链(go test),无需第三方框架即可编写和运行高效的测试。
go-File文件操作
Go 把文件看作一种“数据流(Stream)”,os 负责与操作系统交互,io 定义读写抽象,bufio 提升读写效率,filepath 负责跨平台路径处理。
go-panic异常处理
Go 里的“异常处理”与 Java、JavaScript、Python 等语言有很大区别。Go 没有传统意义上的 try/catch/finally 异常体系。 它主要把错误分成两类:可预期的运行错误 → error;不可预期的严重错误 / 程序异常 → panic;程序从 panic 中恢复 → recover。
go-线程安全与sync.Map
Go里的“线程安全”,本质上是指多个 goruntine 并发访问同一份共享数据时,程序是否还能保持正确性。而 sync.Map 是 Go 标准库针对特定并发读写场景提供的一种并发安全 Map。
go-select语句与协程的超时处理
select 是Go语言中处理并发操作的核心机制之一,它允许一个goroutine同时等待多个channel操作。
go-goroutine-channel协程与channel
Go语言的并发编程模型基于两个核心概念:协程(Goroutine)和通道(Channel)。Goroutine是轻量级的执行单元,而Channel则是它们之间进行通信的管道。它们的核心理念是:“不要通过共享内存来通信,而要通过通信来共享内存”。
go-Interface
接口是一组方法签名的集合。它定义了“行为契约”:任何类型只要实现了接口中所有的方法,就隐式地实现了该接口。
go-Struct结构体
结构体(Struct)是Go语言中最重要的类型系统核心,它既是传统面向对象编程中“类”的轻量级替代,也是Go实现代码复用、数据建模和接口绑定的基础。
go-value-reference值传递与“引用传递”
Go语言中所有参数传递都是值传递(pass by value),没有引用传递!但是很多人会误以为有引用传递,因为切片、map、channel、指针等类型的行为看起来像是在“引用传递”。实际上,它们传递的是指针的副本,但这个副本本身是按值传递的。
go-function-函数
Go 函数支持多返回值、闭包、defer,函数本身是一等公民可以像变量一样传递,错误处理靠多返回值而非异常。
Go-if-and-for判断与循环
Go 用 if/switch 做条件判断,用唯一的 for 关键字涵盖所有循环形式(计数、while、无限、range),没有 while 和 do-while。
Go-baseType基础数据类型
Go 基础数据类型分四类:整数(int/uint系列)、浮点(float32/64)、布尔(bool)、字符串(string),所有变量自动初始化为零值,且类型转换必须显式。
go-Map
Map 是用空间换时间的键值索引结构,核心价值是将任意 key 的查找、插入、删除从 O(n) 降为 O(1)。
go-Array and Slice-数组与切片
优先用切片,数组主要用于固定大小的场景
go-基础类型格式化
在 Go 语言中,% 和 print 主要涉及格式化输出。其中 % 是格式化占位符,通常配合 fmt 包中的 Printf、Sprintf、Println 等使用;print 是 Go 内置函数,用于简单输出(不推荐用于正式开发)。
















