Go教程技术文章
-
Go 的 regexp.Compile 使用 leftmost-first 规则,CompilePOSIX 使用 POSIX ERE 语法和 leftmost-longest 规则。本文用同一模式对比返回结果,并说明语法、子匹配和选型边界。376 收藏 -
用 Go filepath.EvalSymlinks 解析符号链接后的目标路径,区分相对路径、目标缺失、权限错误和链接循环等边界。376 收藏 -
Go log/slog.Logger.With 会返回带公共属性的派生 logger,适合复用组件名、请求 ID 和任务 ID。本文按字段生命周期说明 With 与单条日志参数的分工,并给出原 logger、并发请求和 Handler 边界的实用写法。376 收藏 -
Go 的 hash/crc32 提供 IEEE、Castagnoli 等 CRC-32 多项式。本文从协议兼容、内部数据完整性和流式计算三个角度说明如何选表,并给出可复用的 Checksum 与 New 示例。376 收藏 -
用 testing.TB.Cleanup 管理临时目录、环境变量、HTTP 服务和数据库夹具,说明注册时机、后进先出顺序、子测试边界与失败排查方法。375 收藏 -
用 GOOS、GOARCH 和 CGO_ENABLED=0 为 Linux ARM64 构建纯 Go 程序,并说明遇到 import C 或外部 C 库时应如何判断和处理。375 收藏 -
Go context.AfterFunc 适合绑定超时、上游取消等退出路径的补偿清理。本文用连接读截止时间示例说明 stop 返回值、清理完成同步、幂等和正常完成路径的边界。375 收藏 -
strings.CutPrefix 不只是删除前缀,更重要的是用 found 明确控制后续分支。本文从协议识别、多个业务前缀、空前缀和旧 Go 版本兼容几个边界,整理一套可复用的判断写法。375 收藏 -
通过一个带节点句柄的任务队列,说明 Go container/list 中 Element 的归属、插入、移动、移除和常见生命周期边界。375 收藏 -
Go atomic.Value 适合保存读多写少的只读配置快照。本文从首次 Store、并发 Load、复制旧值到一次性替换,给出可复用的实现方式,并标出类型一致、原地修改和生命周期边界。375 收藏 -
Go HTTPS 客户端同时访问公网和企业内网服务时,可先复制系统根证书池,再追加业务 PEM 根证书,并通过 tls.Config.RootCAs 交给 HTTP Transport。本文给出配置代码、参数边界和排查清单。375 收藏 -
Go 的 http.Request.Trailer 不是普通请求头的即时副本。本文从读取时序出发,说明服务端为什么要等 Body 返回 EOF 后再取尾部字段,并给出声明字段、读取请求体和处理空值的实用写法。375 收藏 -
fsnotify 默认不会递归监听目录。本文从新建子目录后收不到文件事件的现象出发,说明如何先遍历已有目录,再在 Create 事件中识别新目录并调用 Add 补充监听,同时处理路径判断、重复 Add、删除重命名和 Close 生命周期。375 收藏 -
用 os.ReadDir 构建单层目录索引,以 fs.ValidPath 约束相对名称,区分本机路径与 io/fs 名称,并说明部分读取、目录分类和平台转换的处理边界。375 收藏 -
Go 的 go/doc/comment 包可以先把文档注释解析为 *comment.Doc,再由 comment.Printer.Markdown 输出 Markdown 字节。本文按一条完整工作流说明 Parser、Doc、Printer 的职责,以及标题层级、文档链接和输出边界的配置方式。375 收藏