Go教程技术文章
-
Go 中用 fmt.Errorf 的 %w 保留错误上下文,再用 errors.Is 沿错误链判断哨兵错误;本文还说明 %w 与 %v 的 API 暴露边界。468 收藏 -
go fix inline 不是普通编译器优化,而是依据 //go:fix inline 注释对兼容入口提出源码替换建议。本文用函数、常量、类型别名和测试文件四个场景说明识别条件,并给出安全预览与落盘方法。468 收藏 -
Go os.Chmod 传入符号链接路径时会跟随链接修改目标文件。本文用 Stat、Lstat 和 Readlink 区分目标权限、链接对象与指向关系,并给出部署脚本的检查顺序。468 收藏 -
Go crypto/rand.Int 返回 [0,max) 内的均匀随机整数。本文说明 rand.Reader、big.Int、闭区间 span、非法范围检查和大整数转换的边界。468 收藏 -
Go text/template 默认会继续执行缺失的 map 字段。本文说明如何用 Option("missingkey=error") 让 Execute 立即返回错误,并比较 default、zero 与 error 的适用边界。468 收藏 -
Go 比较敏感摘要时,应对等长字节序列使用 crypto/subtle.ConstantTimeCompare;HMAC 校验优先使用 hmac.Equal。本文说明长度不一致会立即失败、返回值如何判断,以及摘要编码和最小测试的边界。468 收藏 -
Go compress/gzip Writer 的 Write 可能把错误留在压缩过程或 Close 收口阶段。本文用错误分层、临时文件和原子提交说明如何丢弃半成品、保留根因并安全清理底层资源。468 收藏 -
Go reflect.TypeFor 可以直接从泛型类型参数取得 reflect.Type,不依赖运行时值是否为 nil。本文对比 TypeFor 与 TypeOf,解释接口、指针、Elem 和旧版本兼容写法,帮助排查反射类型为空或层级不对的问题。468 收藏 -
用 go/types.NewTerm 创建联合项,再用 types.NewUnion 组装 int 与 ~string 等类型集合,并说明嵌入接口约束、读取成员和检查重叠边界的方法。468 收藏 -
slog.Group 可以把请求、用户、订单等字段收进稳定的业务域命名空间。本文从 JSONHandler 的输出形状出发,说明普通属性与分组的区别、嵌套 Group、同名键、空组和日志边界封装的处理方法。468 收藏 -
Go 1.24 引入的 runtime.AddCleanup 适合为包装资源安排兜底清理,但回调不是确定时钟,也不能替代显式 Close。本文用文件句柄包装场景说明 AddCleanup、KeepAlive 和 Cleanup.Stop 的真实边界。467 收藏 -
Go 的 container/heap 允许在队列元素优先级变化后用 heap.Fix 恢复堆序。本文从 heap.Interface 的索引维护出发,拆解 Fix、Remove 与 Pop 的边界,给出可运行的可变优先队列示例。467 收藏 -
Golang · Go教程 | 2个月前 | 性能优化 · 垃圾回收 · Go教程 · go bytes.Buffer Go sync.Pool Go 对象池 sync.Pool 缓存 Go 临时对象复用
sync.Pool 适合复用短生命周期对象,却不保证对象一直存在或每次 Get 都命中。本文说明 Get、New、Put 和自动移除的边界,并给出稳定缓存的替代选择。467 收藏 -
Go unique 负责规范化可比较值,不提供 TTL、容量限制、手工失效、加载错误或命中统计。本文用服务配置场景拆分句柄层与缓存层,说明哪些需求必须继续使用业务缓存。467 收藏 -
Golang · Go教程 | 1个月前 | web安全 · Go教程 · net/http · CSRF防护 Go CrossOriginProtection AddTrustedOrigin 可信子域 跨源写请求
以控制台和 API 分处不同子域的场景,讲清 Go CrossOriginProtection 的精确 Origin 放行、启动校验、拒绝日志、CORS 边界与回归测试。467 收藏