Go教程技术文章
-
介绍 Go archive/tar 使用 Header.PAXRecords 写入自定义 PAX 扩展字段的方法,说明命名空间、正文长度、读取验证和兼容性边界。366 收藏 -
用 Go archive/tar 把文件元数据写入 Header,再以流式方式复制内容,覆盖归档路径、目录、符号链接、大小一致性和 Close 收尾等关键边界。366 收藏 -
Go bufio.Reader.Discard 按固定字节数跳过协议头部,重点说明返回数量、短输入、负数参数和动态长度边界。365 收藏 -
用 Go iter.Seq 把回调式遍历接入 for range,讲清 yield 提前停止、资源清理、iter.Pull 和单次迭代的工程边界。364 收藏 -
使用 Go encoding/json 的 Decoder.Token、More 与 Decode 按层读取嵌套 JSON,逐条处理目标数组,并安全跳过未知结构。364 收藏 -
Go 使用 bufio.Scanner 读取超长行时,默认缓冲可能触发 token too long。本文说明如何在首次 Scan 前调用 Buffer 设置初始缓冲与最大 token,并梳理 Err 检查、内存边界和切换 bufio.Reader 的判断。364 收藏 -
用 Go httptrace 拆分 DNS、TCP/TLS、连接复用、写请求和首字节耗时,配合完整示例定位 HTTP 客户端慢在解析、建连还是服务端等待。364 收藏 -
Go 的 big.ParseFloat 通过 prec 控制二进制有效位数,通过 RoundingMode 决定舍入方向。本文用可复用代码说明参数选择、Accuracy 判断和展示精度之间的边界。363 收藏 -
用 Go 1.26 的 //go:fix inline 为旧 API 提供可迁移的替代入口,演示函数、常量、类型别名的写法,以及副作用、defer、测试和版本门槛等复核边界。363 收藏 -
测试里用 time.Now 生成的时间字段会让 got 和 want 每次都不一样。本文只围绕 go-cmp 解释如何用 cmpopts.IgnoreFields 忽略指定字段,同时保留其它业务字段的差异,并区分时间容差比较、嵌套字段路径和全局忽略类型的边界。363 收藏 -
Go 表驱动测试适合把多组输入、期望输出和用例名称集中管理,再用 t.Run 建立可筛选的子测试。本文围绕输入隔离、错误断言、循环变量和失败定位给出可直接改写的组织方式。362 收藏 -
Go 的 strings.FieldsFunc 适合按自定义 rune 规则切分文本。本文用字段导入场景说明它如何处理连续分隔符、首尾分隔符、Unicode 字符与空字段,并给出与 Split、FieldsFuncSeq 的选择边界。362 收藏 -
围绕 Go html/template 的上下文转义实践,说明 HTML 正文、属性、URI 和 JavaScript 数据位置的差异,并梳理 template.HTML 等安全类型的使用边界。361 收藏 -
本文用 map[string]*list.Element 与 container/list 实现最近使用顺序:命中时 MoveToFront,新增时 PushFront,超容量时从 Back 淘汰,并说明节点归属、重复节点和并发安全等容易踩坑的边界。361 收藏 -
Go 页面共享布局时,先解析公共模板,再在首次执行前 Clone;每个副本解析自己的同名 content 定义,最后缓存并执行 layout,即可隔离首页、后台等页面变体。361 收藏