Go语言技术文章
-
go-toml/v2 默认会忽略目标结构体没有的配置键。本文用 Decoder.DisallowUnknownFields 拒绝未声明字段,并说明 StrictMissingError、嵌套结构体与 map 的边界。158 收藏 -
用一个可复用的泛型小工具说明 Go 如何通过类型集合限制底层类型,并区分精确类型、近似底层类型、方法约束与 comparable 的使用边界。158 收藏 -
Go URL.ResolveReference 的基础路径末尾斜杠会改变相对路径合并位置。通过目录前缀对照和四条表驱动用例,区分目录基址、当前页面、根路径与查询引用,避免错误拼接。157 收藏 -
用tea.Batch并发启动互不依赖的命令,将耗时操作放入Cmd闭包,并用独立消息更新模型状态。示例讲清结果无序、完成标记与后续任务依赖的处理方式。157 收藏 -
Go HTTP客户端分层超时需要区分网络环节上限、请求业务预算与客户端总超时。本文通过原创小响应示例说明配置方法、正文读取和资源关闭,并解释超时并存与常见误用。157 收藏 -
Go http.Request.Pattern 保存的是 ServeMux 实际匹配的路由模式。本文用 GET /orders/{id} 示例说明怎样读取 Pattern、怎样用 PathValue 取得变量值,以及直接调用 handler 和客户端请求导致空字符串的边界。156 收藏 -
用 Go testing.T.Run 把表格驱动测试组织成可读、可筛选的层级子测试,说明命名路径、嵌套分组、go test -run、t.Cleanup 与并行测试的边界。155 收藏 -
Go 收到信号后仍不退出,要区分通知送达、工作取消与 main 生命周期。本文说明缓冲信号通道、NotifyContext、stop、完成回执及有界等待,给出 Linux/macOS 的完整示例并明确超时退出的清理代价。154 收藏 -
Go 的 encoding/csv.Reader 不会自动移除文件开头的 UTF-8 BOM,首个字段可能因此多出不可见字节。本文用流式包装只检查前三个字节,说明如何保留普通文件、处理短输入并继续使用字段数检查。154 收藏 -
Go flag 使用独立双短横线结束包装层选项解析,通过 Args 保留子命令参数。本文给出完整示例,说明普通参数提前终止、第二个分隔符、空参数与进程接口的处理边界。153 收藏 -
本文围绕 Go csvutil 的 CSV 表头映射,说明如何用 csv 结构体标签把外部列名写入指定字段,并介绍自定义 Decoder.Tag、空值、未知列和表头差异等边界。152 收藏 -
Go 1.16 将 io/ioutil 的能力分散到 io 和 os。本文按函数职责整理 ReadFile、ReadDir、ReadAll、临时文件等迁移方式,并说明 DirEntry 与 FileInfo 的兼容边界。151 收藏 -
Go Ristretto v2 通过 Config.Metrics 开启运行时指标,再从 cache.Metrics 读取 Hits、Misses 和 Ratio。本文用一组最小 Go 配方说明命中比例的公式、Wait 的可见性作用、Set 的异步语义与累计统计口径。150 收藏 -
goquery 的 Text 会递归读取选中节点及其后代文本节点,所以父元素中的标题、段落和嵌套标签文字都会被合并。本文说明它的实现语义、常见误解和可控提取方式。148 收藏 -
Go 接口非空却断言出空指针怎么办?区分空接口、类型匹配和具体指针非空,给出双返回值断言、返回端空值处理及反射的适用边界,避免把类型错误当成对象缺失。148 收藏