Go语言技术文章
-
Go archive/zip 的 Reader.Open 使用 io/fs 的正斜杠路径语义。本文说明反斜杠导致找不到条目的原因,并给出规范路径访问、原始名称精确匹配和 ErrInsecurePath 处理方案。374 收藏 -
兽音译者产品站提供明文与兽音之间的双向转换,并强调浏览器本地处理。本文结合页面可见的复制、清空控件,说明如何判断网页是否提供独立历史记录,以及浏览器缓存、截图和手动复制内容的边界。374 收藏 -
Go gob 的接口字段会携带动态具体类型名称,接收端必须预先知道该名称对应的本地类型。本文说明 Register、RegisterName、指针类型与跨进程注册表的正确用法。374 收藏 -
Golang · Go问答 | 1星期前 | 标准库 · Context · 并发编程 · go语言 · 错误排查 · 后台任务 Deadline context取消 context.WithoutCancel Go排查
context.WithoutCancel 本身不会返回 Deadline,但后台任务仍可能从新派生的 WithTimeout 或误用的原始请求 Context 获得时间边界。本文用最小探针定位来源,并给出保留上下文值、脱离请求取消且仍可回收的写法。374 收藏 -
fs.ValidPath 适合校验传给 fs.FS.Open 的斜杠路径,但它不是本地路径检查器,也不会处理 URL 解码、符号链接和真实文件系统边界。本文用有效与无效样例梳理规则,并给出 HTTP、归档和本地路径场景的安全写法。374 收藏 -
Golang · Go问答 | 1星期前 | 标准库 · 错误处理 · Go问答 · Go Content-Type mime.ParseMediaType ErrInvalidMediaParameter
Go mime.ParseMediaType 遇到可选参数格式错误时,可能返回已经识别出的媒体类型和 ErrInvalidMediaParameter,但参数映射不可继续当成完整结果使用。本文用返回组合、错误判断和降级策略说明怎样处理这一边界。374 收藏 -
Redis SREM 的返回值就是本次实际从 Set 中删除的成员数量,不包含不存在的成员。本文用命令行和 Go 客户端说明如何读取这个数字,并区分 0 个命中、键不存在与类型错误。374 收藏 -
PHP DateInterval 中 d 是日期段的天数分量,而由 diff 创建的 days 才是两个日期之间的完整天数。本文用固定区间和来源对比,说明报表统计、自然日期段与格式化展示应如何选字段。374 收藏 -
说明 Go gzip.Writer.Close 为什么不能省略:它会完成压缩状态并写出 gzip 尾部信息。文章给出正确的 defer 关闭顺序,区分 Flush 与 Close,并整理读取不完整、底层关闭失败等排查边界。374 收藏 -
Go 二进制在 Alpine 启动失败时,应读取 ELF 架构、解释器和动态库需求,区分平台错误与 glibc/musl 不匹配。本文给出 readelf 排查命令,以及纯 Go 构建、musl 重编译和 glibc 运行环境的选择边界。374 收藏 -
Go 模块发布错误版本后,不要删除旧 tag 或覆盖原版本。本文说明如何在 go.mod 使用 retract 撤回单个版本或版本区间,为什么必须发布更高版本,以及如何用 go list 和 go get 核对撤回提示与兼容边界。374 收藏 -
Go strings.Builder 的容量优化关键不在盲目调用 Grow,而在于按最终文本的字节数估算预算、用 Len 和 Cap 观察结果,并把 String、Reset 与禁止复制非零 Builder 的边界分清。374 收藏 -
围绕 Go context.WithCancel 的生命周期,说明为什么创建后应立即 defer cancel,以及长任务如何让 worker 监听 Done 并正确收尾。374 收藏 -
netip.ParseAddrPort 不会为缺端口输入自动补值。本文将显式IP端点与裸IP分开,提供业务默认端口封装,保留空端口、越界端口和域名错误,并解释IPv6歧义、零端口及配置迁移边界。374 收藏 -
本文说明如何用带缓冲 channel 作为槽位池限制 Go 并发任务数,覆盖容量语义、槽位获取与释放、context 取消、WaitGroup 收尾,以及信号量和固定 worker 的选择边界。374 收藏