这是一份会长期更新和完善的 Go 学习指南和面试专题,会逐步进行完善。
欢迎到【公众号】获取最新文章或加我 【微信】提意见(记得 Star),可倒推煎鱼更新,感谢各位。
和好朋友整理了一份 LeetCode 全题解,非常赞!可以关注我的【公众号】后回复 【000】 获取 PDF 版本。
覆盖大中厂常见算法题,共包含 700 道:
- Go 语言入门系列:初探 Go 项目实战(含 gin、grpc、grpc-gateway 实战)
- Go 语言编程之旅:深入用 Go 做项目
- Go 语言设计哲学:了解 Go 的为什么和设计思考
- Go 语言进阶之旅:进一步深入 Go 源码
- GMP 模型,为什么要有 P?
- Go 结构体是否可以比较,为什么?
- 单核 CPU,开两个 Goroutine,其中一个死循环,会怎么样?
- 进程、线程都有 ID,为什么 Goroutine 没有 ID?
- Goroutine 数量控制在多少合适,会影响 GC 和调度?
- 详解 Go 程序的启动流程,你知道 g0,m0 是什么吗?
- Goroutine 泄露的情况有哪些?
- Go 在什么时候会抢占 P?
- 会诱发 Goroutine 挂起的 27 个原因
待完善中...
- 新标准库 unique,性能更好,开销更小
- 花了近 10 年,time.After 终于不泄漏了
- time.Reset 解决了过期时间值的坑
- 争议最大的 iter 迭代器,可遍历万物
- 可以记录未捕获的 panic 和 throw 日志了
- 新库 structs.HostLayout,可以指定内存布局了
- 禁用 //go:linkname,建立新的握手机制
- slices、panic、cookie 等函数改进,效率提高了
- 增强 http.ServerMux 路由能力
- for 循环不再共享循环变量,支持整数范围
- for 循环为什么要支持整数范围
- Slices 变更 Concat、Delete、Insert 等函数
- 新的 math/rand/v2 库
- 性能提高、Trace 大修、工作区支持 vendor 等
- slices、maps 泛型库
- for 循环变量的语义变更
- context 可设置取消原因和回调函数
- 主版本号支持第三位数字 0
- 统一标准 log/slog
- 支持自定义 go.env 文件
- 增强约束 Go 程序构建
- 新内置函数和标准库 clear、min、max、cmp
- panic(nil) 成为历史
- 结束对 macOS 10.13/10.14 和 Windows 7/8、Server 2008/2012
- 进一步支持 WASI
- 两个关于 Time 的更新,不用背 2006-01-02 15:04:05 了
- 手动管理内存:arena 来了
- arena 能手动管理内存了,怎么用
- PGO 是啥,咋就让 Go 更快更猛了
- 小修小补 errors 库 Unwrap
- 禁止匿名接口循环导入
- 修改全局变量的初始化顺序
- SliceHeader 和 StringHeader 将会被废弃
- 多 Module 工作区模式
- 编译后的二进制文件,将包含更多信息
- 新增好用的 Cut 方法
- 引入新的 netip 网络库
- 被折腾 N 次的 TryLock
- 弃用 strings.Title 方法,换个新坑吧!
- 高效复制,strings, bytes 标准库新增 Clone API
- 支持切片转换为数组指针
- 支持泛型了?具体怎么用
- 支持模糊测试(Fuzzing)
- 增强构建时的编译约束
- 优化 modules:支持模块依赖图裁剪、延时模块加载
- 优化基于寄存器的函数参数和结果传递
- 优化恐慌所抛出的异常堆栈信息
所有文章和最新进度,请关注:
关注公众号后,可回复 002 可获取我的个人微信号。
我拉你进 Go 读者交流群,连接数千位 Go 爱好者,共同学习和进行技术交流!