Go教程技术文章
-
用 Go text/template 的 Clone 复制公共模板命名空间,再为 Web 和邮件渠道追加独立 body 定义,掌握 ExecuteTemplate、并发执行与 HTML 安全边界。209 收藏 -
Go 的 string 可以保存任意字节,不能只凭字符串类型判断文本合法性。本文用 unicode/utf8.ValidString 做入口校验,并结合 DecodeRuneInString 定位第一个非法 UTF-8 字节。209 收藏 -
Go url.Values 的空值并不等于没有参数:空字符串会编码成 key=,空切片不会输出该键,重复值会按添加顺序展开。本文用 Encode 和 ParseQuery 对照说明三种状态,并给出 Set、Add、Del 的选择边界。209 收藏 -
从 CookieJar 的接口职责、域名路径匹配到 PublicSuffixList 配置,说明 Go HTTP 客户端如何控制会话范围并排查 Cookie 不生效。209 收藏 -
Go database/sql 的 sql.DB 是连接池。需要让一组操作落在同一个数据库会话时,可以用 DB.Conn 获取独立连接;操作结束必须调用 Conn.Close 将连接归还池中,并用上下文控制等待时间。209 收藏 -
Go 的 crypto/rand.Read 保证填满目标切片且不把随机源错误作为普通返回值;需要观察短读、EOF 或可替换 Reader 时,应使用 io.ReadFull,检查 n 与 err,并丢弃不完整随机字节。209 收藏 -
用 Go hash/fnv 把稳定字符串映射为分片编号,讲清 FNV-1a、UTF-8 字节、32/64 位选择、取模边界与扩容迁移风险。209 收藏 -
Go 判断 IP 是否为回环地址时,优先把文本解析为 netip.Addr,再调用 IsLoopback。本文区分 IPv4、IPv6、映射地址、未指定地址和零值 Addr 的边界。209 收藏 -
Go 的 go tool covdata merge 可以把多个 GOCOVERDIR 目录中的原生覆盖率数据合并到一个输出目录。本文说明输入目录、-i/-o 参数、合并后报告生成,以及元数据不一致时的排查边界。209 收藏 -
Go runtime/debug.SetMaxThreads 设置的是操作系统线程总量上限,不是 goroutine 数量或 GOMAXPROCS。本文说明如何在启动阶段设置并保留旧值,解释 cgo、阻塞系统调用与 LockOSThread 对线程创建的影响,并给出上线前的容量边界。209 收藏 -
介绍 Go os/exec 中 Env 为 nil、继承后追加变量和白名单隔离三种写法,说明重复键、PATH、shell 与跨平台边界。209 收藏 -
Golang · Go教程 | 23小时前 | 标准库 · 压缩 · Go教程 · reset compress/gzip io.ByteReader Reader.Multistream gzip 多成员
Go 的 gzip.Reader 默认会把串联的 gzip 成员当成一个连续解压流;如果协议要求逐个处理成员,应调用 Multistream(false),让底层 Reader 提供 io.ByteReader,并用 Reset 判断后续成员。本文解释默认模式、单成员模式、EOF、校验和关闭语义。209 收藏 -
Go Modules 的 replace 可以在不修改 import 路径的情况下,把依赖临时切换到相邻目录中的本地分支。本文说明 require 与 replace 的关系、如何确认实际来源,以及测试完成后怎样恢复 go.mod。208 收藏 -
Go archive/tar 写入长路径时报 header field too long 时,重点检查是否强制使用 USTAR;通过默认格式选择或 PAX 保留完整名称,并区分读取时的路径安全错误。208 收藏 -
围绕 time.Ticker 的动态改周期、永久停止和停止后复用,讲清 Reset、Stop 与 C 通道之间的调用顺序,避免重复创建和并发竞态。208 收藏