Go教程技术文章
-
本文从 tls.Config.RootCAs 的 nil、系统池副本和自定义 CertPool 三种语义出发,说明如何用来源元数据与 VerifiedChains 排查 Go HTTPS 连接实际使用的根证书。366 收藏 -
介绍 Go archive/tar 使用 Header.PAXRecords 写入自定义 PAX 扩展字段的方法,说明命名空间、正文长度、读取验证和兼容性边界。366 收藏 -
用 Go archive/tar 把文件元数据写入 Header,再以流式方式复制内容,覆盖归档路径、目录、符号链接、大小一致性和 Close 收尾等关键边界。366 收藏 -
用 runtime.ReadMemStats 读取 Go 内存快照,区分堆对象当前量、累计分配量与运行时系统量,给出独立局部变量采样和 JSON 输出示例,说明 RSS、GC、并发共享变量与升级回归的边界。366 收藏 -
Go slices.Grow 用来在批量追加前保证切片还有 n 个元素的容量空间。本文区分长度、容量和追加预算,说明为什么必须接住返回值,以及空切片、容量足够、负数参数和过大申请时的处理边界。366 收藏 -
用 httptest.NewServer 隔离真实上游,搭建带路由和参数约束的临时库存服务。示例覆盖地址与客户端注入、超时、重定向策略、响应断言和资源清理,并区分 Recorder、TLS 与新测试接口。366 收藏 -
用 Go json.Valid 快速判断原始字节是否构成完整 JSON,并厘清它与 json.Unmarshal、json.Decoder 以及字段业务校验的职责边界。366 收藏 -
Go bufio.Reader.Discard 按固定字节数跳过协议头部,重点说明返回数量、短输入、负数参数和动态长度边界。365 收藏 -
Go mod tidy 会扫描测试导入和构建标签,测试依赖被调整不一定是误删。本文用导入点、条件测试、-diff 预览和 CI 回归四个检查点,整理出可复查的模块依赖边界。365 收藏 -
sort.Find 适合在有序数据中同时处理匹配与未命中场景。本文用目标值与切片元素的三态比较说明如何定位相等元素的起点,解释 found、插入位置、重复值和比较方向的边界。365 收藏 -
sync.Pool 只能复用临时对象,不能替请求保存状态。通过明确 Get、使用、Put 的所有权边界,在归还前清空请求标识、错误和缓冲引用,并用指标区分池命中与状态泄漏。365 收藏 -
使用 github.com/google/uuid 时,无效 UUID 要看 Parse 返回的 error,零值 UUID 要与 uuid.Nil 比较。本文按解析、格式和业务边界说明三种结果如何区分。365 收藏 -
Go 的 bufio.Scanner 默认 token 缓冲有限,读取超长日志行时可能提前停止。本文用 Scanner.Buffer 调整初始缓冲和最大上限,说明调用时机、错误处理,以及何时应改用 bufio.Reader。365 收藏 -
Go 字符串按字节截断时可能切断中文或表情的 UTF-8 编码。本文用 unicode/utf8.ValidString、range 和 RuneLen 实现按字节上限保留完整 rune,并说明非法输入、零值上限与字符数限制的区别。365 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · csv · Go教程 · 数据导入 · 制表符 Go ReadAll read encoding/csv CSV读取 TSV Reader.Comma
Go encoding/csv.Reader 默认把逗号当作字段分隔符;读取 TSV 或制表符文本时,应在第一次 Read 或 ReadAll 前把 Comma 设置为 '\t'。本文说明有效分隔符约束、引号与空白边界,以及 Read 和 ReadAll 的错误处理方式。365 收藏