Go教程技术文章
-
Go Goldmark 默认按 CommonMark 解析 Markdown,表格语法需要显式接入 extension.Table。本文用一个最小 Go 示例说明 v1 的配置方式、Table 与 GFM 的选择、对齐输出和 v2 API 的迁移边界。119 收藏 -
用 Go time.ParseDuration 读取配置时长时,区分合法单位、空值默认、非法格式和业务范围校验,让超时与间隔配置在启动阶段可定位、可测试。119 收藏 -
Go 的 encoding/csv 遇到列数不齐时,把 FieldsPerRecord 设为 -1 允许可变列数,再在业务层校验必需字段;0 和正数分别适合自动固定与强制固定的 CSV。118 收藏 -
os.WriteFile 会先打开并截断已有文件,写入中途失败可能留下残缺内容。本文解释权限错误的判断方法,并用同目录临时文件加替换保护原文件。118 收藏 -
Go 1.24 引入的 weak.Pointer 可以让缓存只保存弱引用。本文用元数据缓存示例拆解 weak.Make、Value、GC 可达性和并发重建边界,帮助你写出可安全丢弃、失效后可回源的缓存。118 收藏 -
Go fuzzing 找到失败输入后,如何把大而难读的样本缩成稳定的回归语料?本文说明最小化参数、失败语料目录、生成语料缓存和修复后的 go test 回归流程。118 收藏 -
从 200、206 和 416 的响应症状出发,解释 Go net/http ServeContent 如何依赖 io.ReadSeeker 处理 Range 请求、获取内容长度和定位读取位置,并给出文件、自定义 Reader 与并发排障示例。118 收藏 -
Go 1.24 起可通过 net/http.Server.Protocols 明确设定 HTTP/1、HTTP/2 与明文 HTTP/2 的接受范围。本文给出 TLS 服务的最小配置、默认行为边界和回归检查方法。117 收藏 -
讲清 Go os.CreateTemp 的目录与 pattern 规则,演示如何按业务前缀创建临时文件,并用 Close、Remove 和 defer 覆盖异常路径清理。117 收藏 -
Golang · Go教程 | 1个月前 | 并发 · Context · Go教程 · Go context.AfterFunc context.AfterFunc stop Go 回调取消竞态 Go 判断回调是否开始
context.AfterFunc 的 stop 返回 false 并不等于回调已经执行完。本文拆开停止、开始和完成三个状态,用 started 与 finished 通道安全判断回调进度。117 收藏 -
Go weak.Pointer 的比较规则能服务弱键映射,却不能替代业务 ID、持久句柄或对象存活证明。本文结合 Value、KeepAlive、终结器复活与内部指针边界,给出稳定 ID 和弱引用分离的实现方式。117 收藏 -
Go 处理 0.1、19.90 等十进制字符串时,可直接调用 big.Rat.SetString,把输入保存为精确分数,避免先经 float64 引入二进制近似。本文讲清解析失败、精确运算、格式化输出以及与 big.Float、定点整数的选择边界。117 收藏 -
本文实现一个可包裹 slog.JSONHandler 或 TextHandler 的 SecurityHandler:在 Enabled 阶段过滤低级别事件,在 Handle 和 WithAttrs 阶段递归脱敏敏感字段,并正确保留分组、动态级别、下游错误与并发安全语义。117 收藏 -
Go 1.24 引入的 testing.B.Loop 可以把基准测试的一次性初始化和清理放到计时边界之外。本文用固定输入的哈希基准说明正确写法、b.N 迁移边界、编译器优化注意事项和 go test 检查命令。117 收藏 -
Go Excelize 写入大量工作表行时,可以用 NewStreamWriter 获取流式写入器,按递增行号调用 SetRow,最后 Flush 后再保存文件。本文结合实际使用说明内存边界、收尾顺序和不能混用普通写入 API 的限制。117 收藏