Go教程技术文章
-
用 Go os.File.ReadAt 按偏移并发读取文件,讲清分片边界、并发限制、短读与 EOF 处理,以及它和 Read、Seek 的取舍。178 收藏 -
用 Go 的 io.SectionReader 从 ReaderAt 数据源中限制固定起点和长度,说明 Read、ReadAt、Seek、Size、Outer 的偏移口径、EOF 边界以及字节切片的常见坑。178 收藏 -
通过实现限速 Reader 接入 io.Copy,控制文件传输的读取节奏,同时保留 EOF、底层错误、关闭责任和取消边界。178 收藏 -
用 Go compress/flate 的 NewReaderDict 配合同一份预置字典解压 DEFLATE 数据,示范 io.Copy、Close、Reset 的写法,并按字典、输入流和读取边界排查失败原因。178 收藏 -
Go 服务渲染首屏时,直接把 json.Marshal 结果转成 template.JS 很容易越过 html/template 的安全边界。更稳的做法是把结构体直接放在 script 的 JavaScript 值位置,让 html/template 按上下文生成安全 JSON;少量字段则用 data-* 属性。177 收藏 -
Golang · Go教程 | 1个月前 | 错误处理 · go · 模板 · 后端开发 · Go Template html/template text/template 模板运行 missingkey
Go 模板渲染可选片段时,字段缺失不一定会立刻报错。本文用 text/template 的模板运行、Option("missingkey=error") 和显式分支拆开默认行为、严格校验与可选字段的边界,给出可直接运行的处理方式。177 收藏 -
用一个请求日志小项目说明 Go slog.Handler.WithAttrs 的正确用法:把稳定字段提前绑定到 Handler,再让每次 LogAttrs 只写变化字段,同时验证并发输出与字段快照边界。177 收藏 -
用 Go strings.CutPrefix 读取并移除字符串前缀,掌握 after、found 两个返回值,以及未匹配、空前缀、大小写和 Unicode 等边界。177 收藏 -
用 Go utf8.DecodeRune 扫描原始字节时,RuneError 只有配合 size==1 才能判断非法编码,并通过字节游标准确定位原始偏移。177 收藏 -
介绍 Go net/netip.ParseAddrPort 如何解析 IPv4、IPv6 和数字端口,说明 AddrPort 的字段读取、方括号规则、端口 0 与常见错误处理。177 收藏 -
用一个可复用的 zlib.ReadCloser 依次解压多个独立数据块,讲清 Reset、ReadAll、字典、错误处理和 Close 的边界。177 收藏 -
用 Go runtime/trace 采集一次请求的短时执行轨迹,结合 task、region 和 go tool trace 观察 goroutine 调度、阻塞、系统调用与 GC 事件。176 收藏 -
Go 中复用 time.Timer 时,Reset 之前必须先处理可能残留的通道信号;否则循环可能立刻走旧分支。本文用一个可运行的轮询例子说明 Stop、<-timer.C、Reset 和 ctx.Done 的边界。175 收藏 -
Go 的 http.Client 默认只返回最终响应。本文从一次重定向排查开始,演示如何在 CheckRedirect 中复制请求信息、限制敏感请求头,并保存可验收的重定向链。175 收藏 -
用一个可复用的 ResponseWriter 包装器统一记录 Go HTTP 请求的状态码和响应大小,覆盖隐式 200、空响应、重复 WriteHeader 与 Flusher 边界。175 收藏