Go语言技术文章
-
filepath.Rel 负责按当前系统规则计算相对路径,filepath.ToSlash 负责把成功结果转换成统一的 / 表示。本文用原创示例说明错误处理、输出格式和 .. 边界。381 收藏 -
本文从一个带固定前缀的字节输入工具出发,演示 bytes.CutPrefix 如何识别前缀、保留 found 状态并组合成可复用的 Go 命令,同时说明空前缀、空输入和原始切片生命周期。380 收藏 -
解析网络帧、文件头或自定义二进制格式时,字段长度和字节序必须同时明确。本文用 Go encoding/binary 的 BigEndian、ByteOrder 和 Read 说明如何读取固定长度字段,并处理短输入、结构体填充与读取方式选择。379 收藏 -
Go database/sql 的 Conn.PingContext 可以检查一条已获取的专用连接是否仍然可用。本文说明 DB.Conn、超时 Context、PingContext 返回值和 Conn.Close 的正确配合,并区分全局连接池检查与单条会话检查。378 收藏 -
Go 的 netip.Addr.StringExpanded 可以把 IPv6 地址输出为不使用双冒号压缩的完整八组格式。本文从解析、地址族判断和无效值边界出发,给出适合日志、序列化与固定格式对接的写法。377 收藏 -
Golang · Go问答 | 19小时前 | 标准库 · 测试 · 环境变量 · Go问答 · 排错 · 环境变量 Go 并行测试 Go test 测试隔离 Go升级 testing.T.Setenv
Go 版本升级后如果 testing.T.Setenv 的结果看起来变了,先核对 Go 版本契约,再排查 t.Parallel、子测试祖先和环境变量读取时机。本文比较三条定位路径,并给出可直接复现的最小测试与修复选择。377 收藏 -
Go log/slog.Logger.With 会返回带公共属性的派生 logger,适合复用组件名、请求 ID 和任务 ID。本文按字段生命周期说明 With 与单条日志参数的分工,并给出原 logger、并发请求和 Handler 边界的实用写法。376 收藏 -
Golang · Go教程 | 1天前 | Go教程 · 模块管理 · Go 离线构建 go.work go mod vendor vendor/modules.txt go work vendor Go工作区
Go work vendor 适合为 go.work 定义的多模块工作区生成共享 vendor 依赖目录。本文说明工作区边界确认、vendor 生成、离线构建入口以及 go.work、go.mod 与 vendor/modules.txt 的一致性排查,并区分 go work vendor 与 go mod vendor 的适用场景。374 收藏 -
Go 的 CertPool.Subjects 返回证书池中证书主题的 DER 编码,不是完整证书,也不等于系统根证书总数。本文用分层检查方法解释如何读取、解析和判断这些内容,并说明 SystemCertPool 的特殊边界。374 收藏 -
IdleTimeout 只负责 keep-alive 连接等待下一次请求的时间,不负责首个请求的慢请求头、慢请求体或响应写入。本文用一个最小 Go HTTP Server 拆分四类超时,并给出慢连接排查与配置方法。372 收藏 -
Go bytes.Buffer 读取后 Len 会变小,但 Reset 仍能让同一个对象继续写入。本文拆开读取位置、未读切片、底层存储和复用边界,帮助你避免把 Bytes 返回值保存过久。372 收藏 -
使用 bytes.Buffer 时,Grow(n) 不是越大越好。本文按固定大小、近似大小和未知大小三种输入场景,说明如何估算 n,区分 len 与 cap,并给出避免频繁扩容和过度预分配的实用流程。372 收藏 -
用 Go bufio.Reader.Peek 判断固定字节边界,区分完整输入、提前 EOF、ErrBufferFull 和底层读取错误,并给出安全消费与审计清单。371 收藏 -
Go GC 延迟抖动需要把分配速率、辅助标记 CPU、暂停与调度等待放在同一窗口比较。本文给出支持列表采集示例,说明累计直方图差分、缺失指标和升级对照的判断边界。370 收藏 -
Go io/fs.Sub 创建子文件系统后,../ 父级路径为什么会失败?本文从 fs.ValidPath 和路径映射解释原因,并给出同时访问子目录与根级资源时保留原始 FS 的设计方式。369 收藏