Go语言技术文章
-
用 strings.CutPrefix 安全移除 Go 字符串的可选前缀,区分未命中、空结果和空前缀,并给出兼容旧版本的 HasPrefix 加切片写法。108 收藏 -
Go 1.27 为 go doc 增加 package@version 查询形式,可以在不修改当前 go.mod 的情况下读取指定模块版本的包文档。本文说明如何定位到具体符号、选择展示选项,并拆分工具链、路径和代理导致的失败。108 收藏 -
Go uuid.Parse 对 UUID 十六进制大小写不敏感,但会区分长度、连字符、前后空白和其他格式边界。本文说明 Parse、Validate 与 String 的配合方式,帮助排查请求参数解析失败。108 收藏 -
Go fix embedlit 可简化嵌入字段初始化,本文说明语言版本、字段路径和已有嵌入值的输入边界,用源码计数区分可读性收益与性能结论。108 收藏 -
Go 集成 cel-go 时,int 与 double 混合表达式可能在 Compile 阶段失败。本文按类型检查、算术运算、跨类型比较和显式转换拆开排查,给出可落地的修复选择。108 收藏 -
Go x/text/language 的 Matcher.Match 返回值可能带有 -u-rg- 等扩展字段,这是把用户地区设置带入匹配结果的设计。本文区分返回 Tag 与 index 的用途,并给出资源绑定示例。108 收藏 -
Go build tags 没有选中预期文件,通常不是标签失效,而是文件头位置、文件名后缀、布尔表达式、目标环境或 -tags 参数其中一层没有匹配。本文给出一套用 go list 定位实际文件集合的排查方法。107 收藏 -
Go 1.23 起可以用 sync.Map.Clear 一次删除并发临时索引的全部条目。本文说明它与 Delete、普通 map clear 的适用边界,以及并发重建和版本兼容注意点。107 收藏 -
Go x/text/message 在缺少翻译时会格式化原文或备用文案。本文用独立目录示例说明 message.Key、目录绑定和语言选择,并比较原文键与稳定消息标识的维护方式。106 收藏 -
multipart 上传里的 filename 是客户端元数据。本文说明 Go 解析器会做哪些路径处理,以及怎样把展示名、服务端存储名、大小限制和覆盖保护分开设计。105 收藏 -
Go regexp.FindReaderIndex 接收 io.RuneReader,返回首个匹配在输入中的字节起止下标。本文说明如何处理 nil、UTF-8 字节范围、Reader 的超前读取,以及它与 FindIndex、MatchReader 的选择边界。105 收藏 -
Go net/http Request.Clone 会复制 URL、Header、Trailer、表单等请求字段并替换 context,但 Request.Body 仍是浅复制。本文用客户端请求示例说明 Clone、WithContext、Body 和 GetBody 的边界,避免复制请求时误读或重复消费请求体。105 收藏 -
Go YAML 配置转 JSON 后出现数字或布尔类型差异,通常来自 YAML 解码目标与 JSON 再解码到 any 的默认映射。本文用最小复现定位变化层,并给出结构体、UseNumber 与 RawMessage 的修正方式。104 收藏 -
Go width.Fold 可将文本映射到规范宽度,但不等于全部转半角。本文给出字符串处理函数,比较 Fold、Narrow、Widen,并说明原文保留、查询一致和迁移冲突。104 收藏 -
Go bytes.Clone 适合在多个处理阶段需要独立修改 []byte 时隔离底层数组别名。本文从切片共享、nil 与空切片、长度容量以及浅层复制边界出发,给出可直接复用的工程写法。104 收藏