Go教程技术文章
-
Go 的 fs.ValidPath 校验的是 io/fs 虚拟文件系统名称:必须是 UTF-8、非根式、以正斜杠分隔,不能含空段、点段或父目录段,只有“.”可表示根目录。本文说明它与 filepath、go:embed 模式的区别,并给出安全拼接和测试写法。187 收藏 -
通过一个可运行的 Go 内存索引示例,讲清 RWMutex 的读写边界、不可变条目约定、写前准备、读快照、整表替换,以及竞态检测和基准测试方法。187 收藏 -
Go 的 runtime/secret 是实验性能力,适合把短生命周期令牌处理限制在 secret.Do 内;本文说明构建开关、堆与栈擦除边界、返回值设计及平台限制。187 收藏 -
同一个 gob.Decoder 可以连续读取一条流里的多个值,只有下一次 Decode 返回 io.EOF 才表示正常读完。本文从一次成功误判结束的故障现场出发,说明编码、循环读取、错误分层和截断流处理。187 收藏 -
用 Go reflect 读取结构体字段标签时,先统一处理指针与结构体类型,再结合 StructField.Tag 的 Get 或 Lookup 读取标签,并正确拆分 json 等逗号选项。186 收藏 -
用 go.work 组织多个本地 Go 模块,说明工作区 replace 的覆盖关系,并给出 GOWORK、go list 与发布前收拢配置的检查方法。186 收藏 -
Go 1.27 允许结构体复合字面量直接使用提升字段名。本文用可迁移的 Go 示例说明新旧写法、字段选择规则,以及指针嵌入和字段重叠等编译边界。186 收藏 -
Go 的 embed.FS 会保留嵌入目录的路径层级。本文用 io/fs.Sub 裁剪资源根目录,再通过 http.FS 和 http.FileServer 提供静态文件服务,并说明 URL 前缀、错误处理与发布边界。186 收藏 -
Go 的 mime.ParseMediaType 能按 MIME 规则解析 Content-Type 参数。本文说明带引号、分号和转义值如何还原,参数名为何使用小写读取,以及语法错误和业务类型不匹配时怎样处理。186 收藏 -
Go 切片直接赋值只复制切片头,slices.Clone 才会创建独立底层数组。本文从共享视图、可变副本、旧版本 append 写法和 nil/浅复制边界出发,给出按读写责任选择的实用判断。186 收藏 -
围绕 Go http.Transport 说明 IdleConnTimeout、MaxIdleConns 和 MaxIdleConnsPerHost 的作用,区分客户端空闲回收与服务端主动关闭,并给出可复用 Transport 的配置示例和排查清单。185 收藏 -
围绕 Go modules replace、vendor 与 module 模式,说明如何确认依赖来源、生成 vendor/modules.txt、统一构建参数并保留可回退的迁移清单。184 收藏 -
Go mime.FormatMediaType 可以把媒体类型和参数 map 序列化为规范字符串,自动处理名称小写、参数排序、引号转义和非 ASCII 参数编码。本文给出最小写法,并说明非法输入返回空字符串的边界。184 收藏 -
Lip Gloss 的左右文本面板要先分别 Render 成字符串,再用 JoinHorizontal 按顶部、居中或底部对齐;文章同时说明固定宽度、边框和终端总宽度预算。184 收藏 -
解释 Go maps.Equal 比较配置 Map 时 nil map 与空 map 为什么相等,说明 m == nil、len、可写边界、NaN 特殊值和需要保留 nil 语义时的测试写法。183 收藏