Go教程技术文章
-
Golang · Go教程 | 1天前 | 日志 · 标准库 · 编码 · Go教程 · 二进制日志 Go encoding/hex hex.EncodeToString hex.Encode 十六进制编码
Go 中把请求 ID、摘要或协议字段写入日志时,直接输出 []byte 容易出现不可见字符。本文用 encoding/hex 给出可读编码、预分配、解码错误和长度边界的实践清单。399 收藏 -
用 Go os.CreateTemp 在目标目录创建 0600 临时文件,完成写入与同步后再 Rename 替换目标,覆盖清理、并发、权限和跨平台边界。268 收藏 -
本文用 Go net/http ServeMux 组织方法、路径和命名通配符,说明路由优先级、PathValue 参数读取、冲突边界与旧版本兼容写法。205 收藏 -
Go test -cover 默认只统计当前测试目标包。本文用 coverprofile 和 -coverpkg 对照说明包路径选择、依赖包覆盖率与 CI 统计口径的关系。475 收藏 -
本文介绍 Go atomic.Int64 的声明、初始化、Add 递增、Load 读取和 Store 重置,说明并发计数中的复制限制与复合判断边界。381 收藏 -
Go channel 的关闭责任应跟随发送方和生命周期所有者划分。本文用单生产者、多生产者、取消信号三种场景说明 close 的位置、协调方式和排查清单,避免向已关闭通道发送数据。217 收藏 -
用一个临时日志缓冲区示例,说明 sync.Pool 如何在 Get 后初始化、Put 前清理,避免高并发复用对象时泄露上一次请求的脏状态。257 收藏 -
用 Go log/slog 在请求边界派生带 request_id 的 logger,结合 With、WithGroup 和 LogAttrs 组织结构化字段,并说明 context、脱敏与并发复用边界。202 收藏 -
围绕 Go html/template 的上下文转义实践,说明 HTML 正文、属性、URI 和 JavaScript 数据位置的差异,并梳理 template.HTML 等安全类型的使用边界。361 收藏 -
用 Go strconv.ParseInt 按进制和位宽检查字符串整数,区分 ErrSyntax 与 ErrRange,再安全转换为 int32、int64 等业务类型。259 收藏 -
说明 Go interface 携带 nil 指针时为什么仍不等于 nil,并用错误返回边界、类型断言和三种状态测试避免 typed nil 误判。287 收藏 -
解释 Go maps.Equal 比较配置 Map 时 nil map 与空 map 为什么相等,说明 m == nil、len、可写边界、NaN 特殊值和需要保留 nil 语义时的测试写法。183 收藏 -
用 Go sort.Search 在升序切片中查找 lower bound 插入点,处理重复值、首尾边界和切片扩容移动。245 收藏 -
用单槽触发缓冲和单 worker 设计 Go time.Ticker 周期任务,避免慢任务重叠执行,同时保留一次下一轮触发,并说明取消、告警与可靠队列边界。110 收藏 -
讲清 Go time.Timer 复用时 Stop 返回值、旧语义排空 C 通道和 Go 1.23 新计时器语义的差异,并给出单一所有者的安全模板。469 收藏