Go教程技术文章
-
Go 的 archive/tar.Writer.AddFS 可以直接接收 fs.FS,遍历目录树并保持相对路径写入 tar。本文用 os.DirFS 拆解归档根目录、AddFS、Close 和生产环境错误处理边界。303 收藏 -
自定义http.Client需要在请求前安装Gock拦截器。本文给出无真实网络回退的完整Go测试示例,说明实例接线、请求匹配、RestoreClient恢复与全局模拟清理的不同职责。303 收藏 -
Go bloom/v3 用 AddString 加入字符串、用 TestString 查询成员。本文从字节切片写法迁移到字符串方法,说明容量、误判率、精确回退和并发访问边界。303 收藏 -
Go encoding/csv 可以用 Reader.Comment 忽略指定格式的注释行,连续分隔符产生的空字段仍会保留为字符串空值。本文给出逐条读取、字段数约束、空白处理和解析错误的生产写法。303 收藏 -
Go encoding/csv.Reader 会自动忽略真正的空行,但只含空格的记录仍可能被读出。本文用一个可调整的空记录判断函数区分空行、空字段和有效记录,并处理 EOF、解析错误与可变字段数。303 收藏 -
说明Go types.Scope.Innermost的位置查询方法,用完整示例连接源码字节偏移、FileSet与Info.Scopes,并区分nil结果、当前层名称与可见对象查找。303 收藏 -
通过显式存在性判断处理Go fmt.Appendf可选字段,保留空串、零值和false,管理分隔符及返回切片,并说明文本格式与JSON编码的区别。303 收藏 -
围绕 encoding/binary 的固定字段解析,对比 ByteOrder 直接读取、binary.Decode 与 binary.Read 的适用边界,并给出复用批处理结果切片、减少额外分配的实现方式。303 收藏 -
用 Go database/sql 查询一条记录时,QueryRowContext 的错误要在 Scan 处读取,并正确区分 sql.ErrNoRows、类型转换失败和查询错误。302 收藏 -
Go embed 只能从编译时声明的路径读取资源。本文用 embed.FS 配合 fs.Sub 组织多级静态目录,并说明路径前缀、目录遍历和 HTTP 暴露时的常见误区。302 收藏 -
Go 1.24 引入的 testing.B.Loop 能自动控制基准计时边界,并降低 b.N 循环中 setup、cleanup 和结果被优化掉的风险。本文用一个字符串统计小项目说明写法、迁移要点和不能混用的边界。302 收藏 -
Go astutil.AddImport 可以向已经解析的 ast.File 幂等加入导入路径;本文从源码解析、AST 修改、格式化写回和别名边界说明完整做法。302 收藏 -
用 go-ldap/ldap/v3 的 ModifyRequest 和 Replace 只更新一个指定属性,并区分替换、追加、删除的请求语义。302 收藏 -
用 Go genetlink 封装只读请求时,把 Command 和 Version 放进通用消息头,把 Data、family ID、Request/Dump 标志和回复解码留在各自边界,避免 helper 藏掉协议差异。302 收藏 -
Go 默认把接口中的 JSON 数字解码为 float64,超过安全精度时可能改变原始值。本文用 Decoder.UseNumber 保留 json.Number 文本,先用 json.Valid 和格式判断选择 Int64 或 Float64,再处理小数、越界和浮点误差。302 收藏