Go教程技术文章
-
Go 1.26 为 runtime/metrics 增加了更细的调度指标。本文用一段紧凑的采样代码区分 runnable、waiting、running、GOMAXPROCS、运行时线程数与创建总量,说明哪些组合能提示排队或阻塞,哪些结论不能只靠一个数字得出。405 收藏 -
Go 处理 URL 参数中的无填充 base64 时,关键是按字母表和填充约定选择 RawURLEncoding,而不是把所有输入都交给 StdEncoding。本文给出判断表、解码代码和兼容排错方法。405 收藏 -
SJSON 的 SetRaw 需要一个非空路径,空路径会返回 path cannot be empty,因此它不适合直接替换完整根 JSON。本文区分根文档替换、根对象字段写入和嵌套字段更新,并给出 SetRawBytes 的选择方式。405 收藏 -
io/fs 使用统一斜杠路径,而本地文件系统使用操作系统分隔符。本文用 filepath.Localize 完成转换,说明 ValidPath 前置条件、Windows 兼容错误与文件操作边界。405 收藏 -
Go bytes.CutPrefix 用 after 和 found 同时表达去掉固定前缀后的切片与是否命中。本文说明未命中、空前缀、底层数组共享及旧版本兼容边界。405 收藏 -
Go 中要在文件已存在时拒绝覆盖,应把 os.O_CREATE 与 os.O_EXCL 一起传给 os.OpenFile。本文说明返回错误的判断方式、先 Stat 再 Create 的竞态,以及权限和关闭句柄时的边界。404 收藏 -
Golang · Go教程 | 2星期前 | 基准测试 · testing · 性能 · Go教程 · GOMAXPROCS RunParallel Go testing.B.SetParallelism 并行基准 IO吞吐
围绕 Go testing.B.SetParallelism 说明 IO 型 RunParallel 基准为何需要调整并发倍数,给出 p×GOMAXPROCS 的换算、独立 worker 写法、档位对比和连接池边界判断。404 收藏 -
Go runtime/metrics 的直方图判断应看 Description.Kind,而不是猜测指标名称。本文说明如何从 All 建立描述符索引,安全读取 KindFloat64Histogram,并正确理解 Buckets 与 Counts 的关系。404 收藏 -
Go x/text/encoding/charmap 的 EncodeRune 接收一个 rune,返回目标单字节编码中的 byte 和一个 bool。本文说明如何用 ok 判断字符能否编码,如何定位整段文本中的不可表示字符,以及何时改用 NewEncoder 或 UTF-8。404 收藏 -
slog.LogValuer 可以把复杂对象转换成结构化日志值,但如果直接把令牌、邮箱或请求头塞进 Attr,日志脱敏就会失效。本文从 LogValue 的降级边界出发,演示组字段、零值和审计检查如何组合,避免调试信息变成敏感数据出口。403 收藏 -
io.Pipe 没有内部缓冲,它用同步的 PipeReader 和 PipeWriter 把生产者与消费者接起来。本文用一个流式导出示例说明 Write 为什么会阻塞、CloseWithError 如何传递失败,以及怎样避免 goroutine 泄漏。403 收藏 -
Go 的 time.LoadLocation 在精简容器中报 unknown time zone,通常是运行环境缺少 IANA 时区数据。本文按查找顺序、镜像补齐、time/tzdata 嵌入和 ParseInLocation 验证给出处理方案。403 收藏 -
用 io/fs.FS 统一 Go 的 embed.FS 与 os.DirFS,解释 fs.ValidPath 的路径规则、发布目录边界和开发环境切换方式。403 收藏 -
Go bytes.Reader.ReadAt 用显式偏移读取数据而不改变当前位置,适合读取文件头、索引和多个独立区间。本文说明它与 Read、Seek 的边界、n 与 io.EOF 的判断方式,以及只读并发使用时的注意事项。403 收藏 -
pkg.go.dev API 使用 nextPageToken 续取分页结果。本文用 Go 演示如何保留原始查询参数、追加 token、处理空页与重复游标,并给出可恢复的请求循环。403 收藏