Go教程技术文章
-
Go sqlmock 的动态时间参数不适合做精确值比较。本文实现 Argument 匹配器,只约束 time.Time 类型,同时保留 SQL 和固定参数的精确断言。323 收藏 -
Go HTTP Server 默认开启 Keep-Alive。本文用 SetKeepAlivesEnabled(false) 关闭服务端连接复用,并解释 HTTP/1 空闲连接、HTTP/2 边界、优雅停机与客户端 Transport 配置的区别。323 收藏 -
Go slices.Values 提供按顺序产出元素值的迭代器。本文结合完整示例说明版本要求、break、重复遍历与共享切片边界,并给出普通 range 的回退取舍。323 收藏 -
Go 泛型排序的关键不是把所有类型都塞进 any,而是用 type set 明确比较能力。本文从 Price、ProductName 等业务命名类型出发,说明 ~ 底层类型约束、< 与 > 的适用边界,并给出标量排序与结构体字段排序的选择方法。323 收藏 -
Go embed 配合 fs.Glob 可以在只读的 embed.FS 中按 path.Match 规则查找内嵌模板。本文给出嵌入、匹配、解析和安全边界的完整写法。323 收藏 -
Golang · Go教程 | 2星期前 | 标准库 · 缓存 · HTTP · Go教程 · Go http.ServeContent Last-Modified If-Modified-Since ModTime
Go http.ServeContent 的 modtime 不只是一个参数:它会影响 Last-Modified 和 If-Modified-Since 的条件请求判断。本文从缓存未命中的排查场景出发,讲清零时间、秒级精度、304 响应与文件修改时间的正确衔接。323 收藏 -
Go tls.Config.CurvePreferences 控制 TLS 握手允许使用的密钥交换组,但不会按切片顺序强制选择。本文说明显式配置、Go 1.24/1.26 默认变化和 ConnectionState 结果判断。323 收藏 -
Go io.ReaderFrom 是 Writer 端参与流式复制的接口。本文从 ReadFrom 的 EOF、字节计数和短写契约讲起,说明 io.Copy 为什么优先选源端 WriterTo,再回退到目标端 ReaderFrom,以及 CopyBuffer 和性能判断中的常见误区。323 收藏 -
用 github.com/mewkiz/flac 读取 FLAC 的 STREAMINFO,解释 Open 与 ParseFile 的范围差异,以及采样率、声道、位深、总采样数和 MD5 字段的工程用法。323 收藏 -
围绕 Go NotifyContext 解释退出通知、独立清理超时和主协程等待,给出 HTTP 服务示例,并说明 stop、二次信号和清理顺序的边界。322 收藏 -
Go 1.27 标准库 uuid.Parse 可以识别带连字符、花括号、URN 和无分隔符的 UUID 文本。本文按输入边界、错误处理和类型化后续操作拆解调用方式,帮助接口与配置代码避免误用 MustParse。322 收藏 -
Go sonyflake 默认把编号拆成 39 位时间、8 位序列号和 16 位机器 ID。本文先用 v2 的 Decompose 与 ToTime 读取结构化字段,再用右移和掩码解释固定布局的手工拆解,并说明自定义位宽后为什么不能继续套用默认掩码。322 收藏 -
Go filepath.IsAbs 只判断路径字符串按当前操作系统规则是否为绝对路径,不访问文件系统。本文说明 Unix 与 Windows 的路径边界,并区分 IsAbs、Abs、IsLocal 和 Clean 的职责。322 收藏 -
Go bbolt 按前缀扫描键时,先用 Cursor.Seek 定位,再用 bytes.HasPrefix 控制边界,并处理 bucket 缺失、子桶项和事务内字节切片生命周期。321 收藏 -
Go pprof 定位 CPU 热点函数的关键,是先采集能代表真实负载的 CPU profile,再用 go tool pprof 对比 flat、cum、list 和调用关系,最后回到源码行复采确认。321 收藏