Go语言技术文章
-
用 Go sync.OnceFunc 把文件或连接的清理动作封装成共享闭包,让 defer、超时和错误分支可以重复调用但只真正执行一次,并说明与 sync.Once 和可重试清理的边界。116 收藏 -
Go 中 filepath 面向当前操作系统的本地文件路径,path 面向固定使用斜杠的 URL 路径。本文用同一组输入对比两者的职责、Windows 盘符风险、资源地址拼接和跨平台落地方式。115 收藏 -
Go token.FileSet 把每个源码文件映射到一个包含 EOF 的位置区间。本文解释 AddFile 的 base、size 与 FileSet.Base 关系,说明手工复用 base、混用本地 offset 时为什么会出现 panic 或位置错位,并给出多文件位置分配与排查写法。114 收藏 -
Go 的 json.Encoder 默认会把 <、>、& 写成 Unicode 转义。本文按 JSON 的实际消费边界比较默认策略与 SetEscapeHTML(false),说明 HTML 嵌入、API、配置文件和日志场景应该怎样取舍。114 收藏 -
embed.FS.Open 接收的是 io/fs 规则下的逻辑相对路径,直接传入带 ..、绝对路径或反斜杠路径会失败。本文按故障时间线解释根因,并给出可复用的清理与边界处理方式。113 收藏 -
围绕 Go net/url 的 Userinfo 展开,说明如何用 User 与 UserPassword 构造包含 @、冒号、斜杠、空格和中文的用户信息,并用 String 生成完整 URL、Parse 后取回字段,同时区分路径和查询参数的转义边界。113 收藏 -
Go 嵌入字段的方法提升遵循浅层优先规则,同一深度出现同名方法时短选择器会产生歧义。本文用结构体示例说明显式字段路径、外层统一入口与接口方法集检查方法。113 收藏 -
Go Koanf 已经加载整份配置时,可以把目标路径传给 Unmarshal,只将一个子树映射到结构体。本文集中排查路径、koanf 标签、字段形状和 FlatPaths 的边界。112 收藏 -
Golang · Go教程 | 4天前 | select · Context · 超时控制 · Go教程 · time.NewTimer context.Done Go超时 Go select 多路等待
用 select 同时等待业务结果、context.Done 和超时信号,区分成功、主动取消与截止时间到达三种结果,并让后台 goroutine 在超时后仍能安全收尾。112 收藏 -
Golang · Go问答 | 4天前 | 超时 · go · HTTP服务 · net/http · Go net/http ResponseController SetReadDeadline 请求体超时
Go HTTP 服务端要限制慢请求的读取时间,可以用 ResponseController.SetReadDeadline 设置整次请求读取的截止时间。它覆盖请求体读取,零值表示取消 deadline,已经过期后不能靠重新设置更晚时间延长;还要区分 ResponseWriter 不支持该能力与请求本身读取超时。112 收藏 -
介绍GJSON读取点号键名的路径转义写法,区分Go字符串与GJSON语法,并用完整示例说明动态组件转义、字段白名单和缺失结果处理。111 收藏 -
Go 可以用带容量的 channel 保存令牌限制同时执行的任务数,并通过 context 取消等待、defer 归还令牌,避免并发失控或槽位泄漏。111 收藏 -
Go 用 bufio.Writer.ReadFrom 复制大文件时,Reader 的短读通常不是错误,底层 Writer 的短写则必须通过 ReadFrom 和最后一次 Flush 的错误共同判断。本文按调用路径说明快速路径、缓冲区、io.ErrShortWrite 与 io.ErrNoProgress 的处理方式。110 收藏 -
Go zlib 解压出现校验和错误时,需要区分尾部不匹配、输入截断和关闭错误。本文用受控小样本演示完整读取、保留错误链与失败正文隔离,并说明压缩器关闭和底层资源的处理责任。110 收藏 -
Go generate 在 CI 中报找不到命令,通常不是指令没有执行,而是生成器不在 PATH、工作目录与预期不同,或工具安装步骤没有进入同一个 job。本文按命令解析、包源目录、PATH 和流水线检查点给出稳定排查与配置方法。109 收藏