Go教程技术文章
-
Go 客户端访问内网 HTTPS 服务时,如何保留系统根证书并追加自定义 CA,正确配置 x509.CertPool、tls.Config 和 http.Transport。255 收藏 -
Go 1.23 起可用 unique.Make 规范化可比较值。本文用重复标签对象示例说明如何保存 unique.Handle[string]、在热路径比较句柄、在输出边界取回 Value,并解释何时不该使用。255 收藏 -
Go 的 ctx.Err() 适合判断 Canceled 和 DeadlineExceeded,context.Cause(ctx) 则能在设置取消原因后保留更具体的根因。本文用父子 Context、主动取消和超时三个场景说明两者如何配合。255 收藏 -
用 Go 的 filepath.WalkDir 递归遍历目录时,如何只收集指定后缀的文件?本文比较 WalkDir、ReadDir 和 Glob 的边界,并给出大小写统一、目录继续遍历和错误处理的实用写法。255 收藏 -
讲清 Go ast.Inspect 回调返回 true、false 和收到 nil 时的实际语义,用原创示例实现子树裁剪并安全维护遍历状态。255 收藏 -
用 Go net/http 实现文件上传时,同时处理请求体大小、multipart 内存边界、原始文件名清洗、扩展名校验和服务端存储名。254 收藏 -
Go 读取 PEM 证书时要先用 encoding/pem 解出 DER,再交给 crypto/x509 解析;本文给出读取 DNSNames、IPAddresses、NotAfter 和处理证书链的完整方法。254 收藏 -
Go slices.Compact 只压缩连续重复值,并会清理新长度之后的尾部。本文结合源码说明 clear 的内存语义、原地复用边界和安全使用方式。254 收藏 -
本文用 Number 与 ID 两个示例说明 Go 泛型类型集合约束的设计方法,覆盖 ~、|、comparable、命名类型、map 键和 API 复用边界。254 收藏 -
Go 1.27 及以上模块中,go mod tidy 可以把重复的 require 块整理为直接与间接依赖块。本文说明版本条件、注释归属、go.mod 与 go.sum 差异以及 CI 复核边界。254 收藏 -
介绍Go archive/tar写入目录、文件模式和大小的方法,提供空目录与脚本示例,说明FileInfoHeader权限转换、关闭错误和失败回退。254 收藏 -
解释 Go io.SectionReader.Outer 返回直接父窗口的语义,并用逐层累加偏移、截断父窗口剩余长度的方法还原嵌套读取区间。254 收藏 -
用12字节固定头示例设计Go二进制解析接口,明确大端偏移、完整读取、长度上限、错误保留和版本兼容边界。254 收藏 -
Go AST 文档工具解析函数结果时,不能直接把 FieldList.List 的下标当作返回值位置。本文用 NumFields 和 Field.Names 区分语法节点与语义槽位,为无名返回值生成稳定编号,并保留类型和源码行号。254 收藏 -
Go 的 io/fs.ReadDir 会按文件名排序返回目录项,但底层 ReadDirFile、os.File.ReadDir 和错误场景的行为并不完全一样。本文从一次目录索引顺序错乱的排查开始,拆清排序、部分结果和测试边界。253 收藏