Go教程技术文章
-
自签名 CA 或内网证书接入 Go 客户端时,握手失败往往不是服务端证书坏了,而是根证书没有进入本次 Verify 使用的证书池。本文从系统根证书池、NewCertPool、AddCert 到 Verify 串起一条可运行的证书链校验路径。433 收藏 -
Go embed.FS 把配置目录编译进程序后,可以用 fs.WalkDir 按路径筛选 YAML 文件并保留遍历错误。本文从嵌入文件树开始,演示目录遍历、扩展名过滤、错误返回和测试检查。431 收藏 -
Go 测试里 t.Setenv 会注册环境变量清理动作,但它不能与 t.Parallel 放在同一测试流程中。本文用最小示例说明限制原因、子测试边界和稳定的隔离写法。429 收藏 -
用 Go 的 slices.BinarySearchFunc 在结构体切片中按自定义字段查找,重点说明返回下标与 found 的含义、排序契约以及比较器写错时的排查方法。429 收藏 -
Golang · Go教程 | 13小时前 | Windows · 跨平台 · os · golang · 文件权限 · Windows unix Go 只读属性 os.File.Chmod FileMode
Go 的 os.File.Chmod 在 Unix 上修改权限位,在 Windows 上主要控制只读属性。本文用可运行示例说明 0o200、0o400、0o600 的平台差异、符号链接行为和跨平台验证方式。427 收藏 -
Go 1.23 引入 iter.Pull 后,调用方可以把 push 迭代器改成 next 读取,但停止时机和资源释放不能靠猜。本文用可运行示例拆解 next、stop、done 的边界,定位 goroutine 泄漏,并给出取消、回滚与告警检查办法。423 收藏 -
Go 的 template.FuncMap 适合注册纯函数,但闭包若持有可变共享状态,模板并发执行时仍会产生竞态。本文从注册、解析、执行三个边界拆解风险,并给出可验证的安全写法。423 收藏 -
strings.Builder 的 String 返回值可以保存并在后续写入或 Reset 后继续使用,但 Builder 本身不能复制;本文从 String、WriteString、Reset 和 Cap 的真实边界说明如何安全复用它。422 收藏 -
用 Go 的 http.ResponseController 实现流式 HTTP 响应,讲清 FlushError、写超时、客户端断开和资源清理之间的边界。421 收藏 -
Go 标准库的一次性初始化函数适合封装成可并发调用的闭包,但它缓存的是一次执行结果,初始化 panic 也会被重复传播。本文用真实源码路径拆开执行、结果可见性、失败语义与重置边界。420 收藏 -
bytes.Buffer.Grow 不是越早调用越好。本文从容量、写入、Reset 和 Bytes 的真实关系出发,说明预留空间、复用缓冲区与避免长期保留大内存的边界。419 收藏 -
Go 的 html/template.ParseFS 可以直接从 embed.FS 加载模板,但嵌入路径、模板匹配和执行错误各有边界。本文用一个可运行的页面渲染例子拆开加载、执行、错误定位与发布验收。417 收藏 -
Golang · Go教程 | 7小时前 | go标准库 · Go教程 · 性能诊断 · 运行时监控 · Go 运行时指标 runtime/metrics metrics.Read ValueKind
Go runtime/metrics.Read 适合把一组运行时指标一次性读入复用的 Sample 切片。本文从 metrics.All 获取描述符,演示样本缓冲、ValueKind 类型分支、未知指标处理与并发读取边界,帮助你写出不会误读数值的采集代码。417 收藏 -
Go 1.23 的 slices.Chunk 返回的是原切片的连续子切片。本文用一个可运行例子说明修改分组结果为何会影响原切片,以及如何用 slices.Clone 建立独立副本。415 收藏 -
sync.Cond 的 Broadcast 只负责唤醒等待者,不代表条件已经属于当前协程。本文从有界队列场景拆解 Wait、Signal、Broadcast 的配合方式,解释为什么必须在循环中检查共享状态,并给出可运行的 Go 验证代码、错误写法和回归清单。414 收藏