Go教程技术文章
-
Go 处理不带时区的日期字符串时,应使用 Asia/Shanghai 配合 time.ParseInLocation,再按需求调用 Unix 或 UnixMilli,避免直接 time.Parse 按 UTC 解释造成 8 小时偏差。261 收藏 -
Go encoding/gob 按字段名匹配结构体数据。本文说明旧 gob 数据解码到新增导出字段的结构体时为何通常仍然兼容、哪些类型变化会失败,以及如何设计结构体迁移测试。261 收藏 -
用 ReadFull 和 LimitedReader 读取固定长度协议载荷,区分读取上限、读满判断与提前 EOF,说明流式写入错误、缓冲Reader和后续帧边界。261 收藏 -
Go 错误被 fmt.Errorf 包装后,直接类型断言可能失效。本文用自定义错误演示 errors.As 如何沿错误树取出目标类型,并区分 As、Is 与 errors.Join 的适用边界。261 收藏 -
用 Go html/template 完成用户输入自动转义,覆盖 HTML 文本、href 属性、脚本上下文、安全类型与不安全 URL 的边界。261 收藏 -
用 Go runtime/debug.ReadGCStats 采样 GC 暂停历史时,Pause 可能复用底层切片。本文说明如何复制采样快照、读取最近优先的暂停记录,并用 PauseQuantiles 输出固定分位数摘要。261 收藏 -
围绕 Go unique.Make 与 Handle[T] 说明可比较值的规范化、相等判断、Value 取值和生命周期边界,给出带中文注释的最小实现与采用清单。261 收藏 -
用 Go 标准库 http.ServeContent 实现支持 Range 的文件下载接口,理解 200、206、416、If-Range 与 io.ReadSeeker 的边界。260 收藏 -
用 sql.NullString 扫描 nullable 文本,清楚区分数据库 NULL、空字符串和普通字符串,并说明批量读取、写回和接口映射中的常见坑。260 收藏 -
讲清 Go httptest.NewRequest 如何构造请求体、设置 ContentLength,并用 Handler 回归测试覆盖已知长度、未知长度和空请求体边界。260 收藏 -
Go 中的自然日应按目标时区的日历边界计算:先把锚点时刻转换到 Location,构造当地零点,再用 AddDate 得到下一日零点。本文解释为什么不能固定加 24 小时,并给出半开区间、UTC 查询与夏令时测试写法。260 收藏 -
Go sync.OnceValue 会缓存成功结果,也会记住初始化函数的 panic。本文用调用结构、状态边界和决策表说明怎样设计可预测的一次性初始化。260 收藏 -
Go 1.27 的 constant.StringLen 可直接计算字符串常量的字节长度,不必先提取完整内容。通过原创示例区分未知值与空串,说明字面量、拼接表达式、类型检查和报告缓存的适用边界。260 收藏 -
Go math.Nextafter32 返回 float32 朝目标方向的下一个可表示值。本文用最小示例说明方向语义,并梳理相等输入、零值、NaN 与极值附近的边界,帮助区分邻接值操作和误差容忍判断。260 收藏 -
Go 的 os.File 是文件句柄,不是可直接填写字段的配置结构。本文用独立配置表达可选权限、偏移、截断和同步策略,并说明打开、写入、失败处理与关闭的职责边界。260 收藏