Go教程技术文章
-
用一个最小 Go 项目演示如何通过 //go:embed 把模板编译进 embed.FS,再用 ReadFile 读取、template.Parse 解析并执行,补充路径规则、错误处理、ParseFS 取舍与测试方法。367 收藏 -
Golang · Go教程 | 2个月前 | 并发 · 错误处理 · go · Context · 排错 · Go 错误链 context.WithCancelCause context.Cause 取消原因
一次请求提前结束时,ctx.Err() 往往只剩下 context.Canceled。用 context.WithCancelCause 和 context.Cause 可以保留真正的中断原因,并把它用于日志、指标和调用方处理;关键是区分父子 Context 的先后关系。366 收藏 -
Go 1.26 允许 new(expr) 直接从表达式推断指针类型。本文用切片和映射对比旧写法,说明零值、可写性、类型推断和迁移检查边界。366 收藏 -
用 slices.BinarySearchFunc 在按字段排序的 Go 结构体切片中查找记录,说明比较器契约、未命中的插入点、重复字段和更新后的维护方式。366 收藏 -
Go regexp.Longest 会修改 Regexp 实例的匹配策略,不能与其他方法并发调用。本文说明如何在启动阶段完成配置,让多个 goroutine 安全复用共享正则,并隔离不同匹配策略。366 收藏 -
讲清 Go strings.CutPrefix 的 after 与 found 返回值,处理可选协议前缀、空前缀、重复前缀和大小写边界,并给出旧版 Go 的兼容写法。366 收藏 -
用 Go httptest.NewRequest 构造带指定 Host 的服务端请求,区分绝对 URL、Request.Host 与 Header 中 Host 的边界,并给出 handler 测试中的断言写法和常见陷阱。366 收藏 -
本文从 tls.Config.RootCAs 的 nil、系统池副本和自定义 CertPool 三种语义出发,说明如何用来源元数据与 VerifiedChains 排查 Go HTTPS 连接实际使用的根证书。366 收藏 -
介绍 Go archive/tar 使用 Header.PAXRecords 写入自定义 PAX 扩展字段的方法,说明命名空间、正文长度、读取验证和兼容性边界。366 收藏 -
用 Go archive/tar 把文件元数据写入 Header,再以流式方式复制内容,覆盖归档路径、目录、符号链接、大小一致性和 Close 收尾等关键边界。366 收藏 -
Go bufio.Reader.Discard 按固定字节数跳过协议头部,重点说明返回数量、短输入、负数参数和动态长度边界。365 收藏 -
从配置文件落盘权限不符合预期的现场出发,拆解 Go os.WriteFile 的 perm、Unix umask、首次创建与覆盖已有文件的差异,并给出可复现的检查和修正边界。364 收藏 -
从一个可重复触发的 Go 定时任务出发,拆解 time.Ticker 的停止顺序、退出信号、重复 Stop 边界和可验收的收尾写法。364 收藏 -
Go exec.CommandContext 超时后,不要用 cmd.Process 非空判断进程存活。本文用 Run/Wait、ctx.Err、ExitError 和 ProcessState 区分取消原因、直接子进程终态、输出采集与资源回收边界。364 收藏 -
Go 1.23 的 maps.Keys 返回 iter.Seq 而不是切片。本文演示如何用计数和 break 获取任意前 N 个键,何时必须排序保证稳定顺序,以及如何封装可组合的 Take 迭代器。364 收藏