Go教程技术文章
-
Golang · Go教程 | 1个月前 | Go教程 · net/http · CheckRedirect Go http.Client重定向 ErrUseLastResponse HTTP跳转策略
通过 http.Client.CheckRedirect 按目标主机、请求方法和跳转次数制定重定向策略,区分拒绝跳转与保留 3xx 响应,并处理 301/302/303、307/308 的请求体和响应关闭边界。246 收藏 -
Go 的 URL.Redacted 会保留用户名并把 Userinfo 密码替换为 xxxxx,但不会处理查询参数中的 token。本文从日志泄露路径出发,给出标准方法、强化脱敏封装、结构化审计字段和回归测试。246 收藏 -
本文用一个原创 Go 示例说明 importer.ForCompiler 如何选择 gc、gccgo 或 source,如何配合 token.FileSet 与 go/types 读取类型信息,以及 Lookup、模块路径和 cgo 边界。246 收藏 -
Go flag.BoolFunc 适合无显式值但需要每次触发动作的命令行开关。本文说明重复解析、显式值、错误处理,以及它和 Bool、Func、自定义 Value 的选择边界。246 收藏 -
围绕Go Goldmark自定义Badge节点说明Kind定义、HTML回调注册、进入与离开事件及文本转义,用固定v1接口示例区分节点构造和渲染职责。246 收藏 -
Excelize 的 NewStyle 返回当前工作簿内的样式 ID,SetCellStyle 再把它绑定到单元格或区域。本文用缓存和区域复用说明如何避免循环创建重复样式,并梳理工作簿边界与样式拆分规则。246 收藏 -
用 Go http.ResponseController 检测 Flush 能力,区分 http.ErrNotSupported、真实传输错误和代理缓冲边界,让包装后的 ResponseWriter 在不支持实时刷新时平滑降级。246 收藏 -
用一个消息分发小工具演示 Go RawMessage:先读 kind,再把 payload 解析成通知对象或标签数组,并处理缺失、null、未知类型和输入大小限制。246 收藏 -
Go debug/dwarf 的 LineReader 按编译单元读取 DWARF 源码行表。本文从 debug/elf 打开可执行文件开始,讲清 Data.LineReader、Next、LineEntry、EndSequence、SeekPC 和性能边界。246 收藏 -
Go NATS 请求可以直接传入 time.Duration,也可以使用带 deadline 的 context.WithTimeout 调用 RequestWithContext。本文用一个请求响应场景说明两种写法、错误分支与上下文清理边界。246 收藏 -
使用 Gonum interp 的可导数插值器拟合递增采样数据,在同一个插值位置分别调用 Predict 和 PredictDerivative 取得函数值与一阶导数,并说明拟合契约、区间外查询和算法选择边界。246 收藏 -
本文用二维服务点示例说明 Go rtreego 的最近邻查询:让对象实现 Spatial.Bounds,创建二维 R-tree 后用 NearestNeighbor 查找单个最近对象,用 NearestNeighbors 获取前 k 个候选,并处理空树、维度一致性和对象移动后的重插入边界。246 收藏 -
Go 1.25 将 testing/synctest 从实验功能带到标准库可用状态,本文用超时重试测试说明如何替换旧开关、检查虚拟时间语义并让 CI 稳定验收。245 收藏 -
Golang · Go教程 | 2个月前 | 标准库 · golang · 性能优化 · 接口设计 · 性能优化 Go字符串 缓冲区复用 encoding.TextAppender MarshalText
Go 1.24 的 encoding.TextAppender 让类型可以直接把文本追加到已有字节缓冲区,适合日志、协议编码和批量格式化场景。本文从 MarshalText 的临时分配问题出发,说明 AppendText 的实现边界、错误传播和可验证的基准写法。245 收藏 -
Go 泛型约束既能描述可参与运算的类型集合,也能要求调用方具备指定方法。本文用一个带 String 方法的泛型容器,拆开接口组合、~ 底层类型和方法集的边界,解释常见 cannot use 报错该怎么定位。245 收藏