Go语言技术文章
-
Go time.Time 默认通过 MarshalJSON 输出带引号的 RFC 3339 时间字符串,并保留有意义的子秒精度。本文说明纳秒尾随零、时区偏移、Location 名称、单调时钟、零值和错误边界,帮助接口设计避免误判精度丢失。176 收藏 -
Go time.Time.Weekday() 返回星期值,Weekday.String() 可直接得到英文名称;如果界面需要中文,应保留星期值并在展示层显式映射。本文给出最小写法、零值与时区边界,以及 API 返回结构的选择建议。251 收藏 -
Go time.Ticker 的 tick 不是可靠事件队列,接收方变慢时可能被调整或丢弃。本文说明如何定位高频消费过慢,并按最新状态、全部事件和退出清理选择合适方案。159 收藏 -
解释 Go time.Ticker 停止后为什么不能自动清理消费 goroutine,并给出用 context.Done 协作退出、用 defer Stop 收尾 ticker 的实用写法。404 收藏 -
Go filepath.Rel 在 Windows 上已支持盘符与 UNC 共享卷名。本文用完整绝对路径封装说明同卷计算、跨卷错误、盘符相对路径与 Linux 处理 Windows 路径文本的区别。319 收藏 -
Go filepath.Clean 负责词法归一化,filepath.Rel 负责计算相对路径。本文把两者组合成根目录校验函数,处理 .. 越界、根目录本身、绝对路径和符号链接边界。172 收藏 -
Go filepath.Rel 只能在目标系统能够相对化的路径之间计算结果。本文解释 Windows 盘符与 UNC 共享根不一致时为什么报错,给出卷名预判、跨平台测试和迁移方案选择。458 收藏 -
Go io.ReadFull 会尽力读满固定长度的缓冲区。本文区分完整读取、起始 EOF 和半帧 ErrUnexpectedEOF,并给出定长消息封装写法。387 收藏 -
Go filepath.Match 的反斜杠规则会随操作系统变化:Unix 类系统把 \c 当作对字符 c 的转义,Windows 则把反斜杠当作路径分隔符。本文用最小示例说明通配符、完整匹配、ErrBadPattern 和跨平台写法。156 收藏 -
Go net/url 用 url.Values 保存重复查询键的多个值。本文说明 ParseQuery、Get、Add、Set、Del 和 Encode 的差异,帮助你在多选参数与唯一参数之间做出正确选择。137 收藏 -
Go compress/gzip Writer 的 Write 可能把错误留在压缩过程或 Close 收口阶段。本文用错误分层、临时文件和原子提交说明如何丢弃半成品、保留根因并安全清理底层资源。468 收藏 -
Golang · Go教程 | 1星期前 | 网络编程 · 标准库 · HTTP · Go教程 · Go 响应头 net/http http.Header Header.Get Header.Values
Go 的 http.Header 底层是 map[string][]string。需要读取同名响应头的全部值时使用 Header.Values,只关心首个值才使用 Header.Get,并注意缺失值、大小写与返回切片的边界。148 收藏 -
Go compress/gzip 的 Write 不代表压缩流已经完成,必须调用 Writer.Close 刷新未写数据并写入 GZIP 尾部。本文说明 gzip.Writer 与底层 io.Writer 的关闭责任、defer 顺序、Close 错误处理,以及 Flush 和 Reset 的适用边界。367 收藏 -
Go archive/tar 只负责读取 tar 条目,不会替应用限制解包路径和磁盘预算。本文用路径归一化、根目录边界检查、单文件上限与总量上限,搭出可迁移的安全解包骨架。277 收藏 -
Go archive/tar 的 Header.Format 是 Reader.Next 对归档格式的尽力判断,可能返回 USTAR、PAX、GNU 或 Unknown。本文说明如何读取格式、比较能力边界,并在重新写入时显式选择兼容格式。136 收藏