Go语言技术文章
-
Go 中解析带小数秒的 RFC3339 时间,使用 time.Parse 配合 time.RFC3339Nano;解析后的小数秒可通过 Nanosecond() 读取,超过纳秒精度的部分会被截断,格式化时还要注意 RFC3339Nano 会去掉末尾零。414 收藏 -
bbolt 的嵌套 Bucket 可以把业务域、租户和键值放进清晰的层级路径。本文用一组幂等初始化、写入读取与删除边界,说明如何在事务内隔离业务数据。413 收藏 -
Go HTTP Server 可以通过 BaseContext 为新连接提供服务级根上下文。本文说明如何创建可取消的服务上下文、接入 http.Server,并区分 BaseContext、ConnContext 与请求上下文的生命周期边界。413 收藏 -
Go 项目已有 vendor 目录却没有使用时,先检查主模块根目录、go.mod 的 go 版本、GOFLAGS 或 -mod 覆盖项,再用 go mod vendor 同步 vendor/modules.txt,并用 -mod=vendor 确认构建路径。413 收藏 -
用 Go slices.Chunk 按固定大小遍历任务批次,说明最后一批、空输入、非法批大小、共享底层数组与 slices.Clone 副本边界。413 收藏 -
Go 的 http.Client 会根据重定向目标判断是否转发 Authorization。本文从第一跳与下一跳的请求头基线入手,解释敏感头为何跨域丢失,并给出用 CheckRedirect 限制信任边界的安全写法。413 收藏 -
Go math/big.Int.CmpAbs 专门比较两个大整数的绝对值,适合处理负数参与的幅度、阈值和排序判断。本文对比 Cmp 的有符号语义,说明返回值、零值、指针和迁移边界。413 收藏 -
使用 go/parser 分析 Go 源码时,ParseComments 决定 AST 是否保留注释。本文从 ParseFile、ast.File.Comments 和声明 Doc 注释入手,给出可直接改造的解析示例。413 收藏 -
Go 1.25 将 testing/synctest 正式纳入标准库。本文用并发回调和 context 超时场景说明如何用 bubble、Wait 与虚拟时间替代真实等待,并梳理网络阻塞、死锁和版本边界。413 收藏 -
Go io.TeeReader 会把通过它读取到的字节同步写入另一个 Writer。本文用一个计数 Writer 统计流经 Reader 的字节数,并说明无内部缓冲、写入错误传播、EOF 与部分读取等边界,适合上传进度、摘要计算和流式审计场景。413 收藏 -
解释Gonum插值器区间外预测的包级合同与PiecewiseLinear端点行为,给出显式拒绝、夹取及来源标记的原创包装示例与理论结果对照。413 收藏 -
Go 1.23 新增的 unique.Make 可以把 comparable 值规范化为可比较的 Handle。本文从字符串标签注册场景出发,组合一个小型工具,说明去重、Handle 比较、Value 读取以及并发边界。413 收藏 -
Go unique.Make 可把重复的可比较值规范化为 Handle[string],用于批处理中的重复标签比较与索引。本文用一个最小示例说明它和 map[string] 的取舍、Value 边界、并发语义与持久化限制。413 收藏 -
Go os.DirFS 可以把一个目录包装成可复用的 fs.FS,批处理时在循环外创建并用相对路径读取文件,可减少重复路径处理;但它不是通用的 chroot 安全机制,符号链接和相对根目录仍需单独判断。413 收藏 -
解释 Go archive/tar 长文件名看似被截断的原因,给出显式使用 PAX、正确读取 Header.Name,以及批处理复用缓冲区减少额外分配的写法。413 收藏