Go问答技术文章
-
讲清 Go template.ParseFS 如何按 embed.FS 的正斜杠路径使用通配符,说明多级模板目录的组织、** 误区与 ExecuteTemplate 的稳定入口写法。369 收藏 -
Go接口只有动态类型和动态值都未设置时才等于nil。本文用一个小型错误处理示例拆解nil指针装入接口后的判断差异,并给出error返回、类型断言、reflect检查和测试验收方法。369 收藏 -
Go database/sql 的 ColumnType.DatabaseTypeName 返回空字符串时,如何区分驱动能力缺失与查询错误,并用显式映射、ScanType 和 unknown 设计稳定的跨驱动回退。369 收藏 -
Go goroutine 捕获循环变量可通过显式形参固定每轮任务值。本文区分 Go 1.22 后的声明式循环与外部变量复用,用 WaitGroup 给出完整示例,并解释指针、切片和 map 的共享边界,避免把参数副本误当深拷贝。369 收藏 -
os.Stat 成功不保证后续 Open 成功。文章说明路径竞态、权限差异与文件句柄的区别,给出直接打开、限量读取和错误分类示例,并划清排他创建与可信根目录访问的边界。369 收藏 -
go-shp 写入 Shapefile 时,Write 完成并不等于文件完整。本文说明 Close 如何收尾 SHP、SHX、DBF 头部,并给出字段、几何、属性与交付边界的写法。369 收藏 -
Go io/fs.Sub 创建子文件系统后,../ 父级路径为什么会失败?本文从 fs.ValidPath 和路径映射解释原因,并给出同时访问子目录与根级资源时保留原始 FS 的设计方式。369 收藏 -
Go benchmark 结果忽高忽低,常见原因不是被测函数本身,而是初始化落在计时区间、分配统计未分开或运行噪声未被重复确认。本文用 testing.B 说明 StopTimer、ResetTimer、ReportAllocs 和 -count 的配合方式。368 收藏 -
Go context deadline 到期不会强制杀掉后台 goroutine。本文用 Done、Err、可取消阻塞点和 WaitGroup 拆解不退出原因,并给出安全的协作式退出写法。368 收藏 -
Golang · Go问答 | 1个月前 | 依赖管理 · go · module · go mod download Go module retract Go 模块撤回 Go 依赖版本缓存 go list -retracted
Go module 的 retract 只改变自动版本选择,不会把已发布版本从代理或本地缓存抹掉。本文用 go list、go mod download 和 GOMODCACHE 排查撤回版本仍能下载的原因,并给出升级、保留和清理三种处理边界。368 收藏 -
Go 解析无时区字符串时相差八小时,通常是把 UTC 解析规则、目标 Location 和数值偏移混为一谈。本文用 Parse 与 ParseInLocation 对比说明“解释字符串”和“In 转换显示”的差别,并给出 RFC3339、数据库及比较时间的稳妥写法。368 收藏 -
本地能下载私有 Go 模块,pkg.go.dev API 仍可能返回 not found。本文解释公共索引边界、GOPRIVATE 的真实作用,并给出私有代理与本地排查方案。368 收藏 -
Go Ed25519 验签失败时,优先核对原始消息、公钥和签名字节是否一致,再检查 Base64、十六进制解码与长度边界。368 收藏 -
Go context.Value 取值失败,应区分 key 未命中与值类型断言失败,再比较 key 的动态类型和动态值。本文用原创示例解释定义类型、别名与跨包约定,并提供私有 key 的类型化访问封装。368 收藏 -
go-i18n 找不到目标语言的 MessageID 时,会先尝试 Bundle 的默认语言;如果仍没有消息,再使用 LocalizeConfig.DefaultMessage。本文梳理 Localize 的回退链、错误处理以及 MustLocalize 和复数 Other 的边界。368 收藏