Go语言技术文章
-
Go encoding/json/v2 默认拒绝重复成员名,可用 AllowDuplicateNames 明确严格或兼容策略。示例说明对象入口、空输入处理、局部结果隔离及旧数据导入边界。126 收藏 -
Go 1.27 的 encoding/json/v2 默认拒绝 JSON 对象中的重复名称。本文用一个可复用的小函数说明如何识别重复键错误,以及何时显式使用 jsontext.AllowDuplicateNames(true) 兼容旧协议。348 收藏 -
接收用户提供的文件路径时,先用 filepath.IsLocal 做词法边界判断,可以拒绝绝对路径、空路径、父目录逃逸意图以及 Windows 保留名,再安全地拼接工作目录。本文用一个可复用的 Go 示例说明校验、Join 和真实文件操作之间的边界,并提醒 IsLocal 不会解析符号链接。389 收藏 -
Go unicode.ToTitle 接收一个 rune 并返回对应的 Unicode 标题大小写形式。本文从 ToUpper、ToLower 的差异讲到 UTF-8 字节与 rune 的边界,给出可复用的逐 rune 转换写法。430 收藏 -
Go 的 net/url.URL.Port 只返回 URL 中显式写出的端口,不会自动补出 http 或 https 的默认端口。本文用一段可复用的解析代码说明显式端口、默认端口、IPv6 主机和异常输入的处理边界。439 收藏 -
Go encoding/json 的 Decoder 可以连续读取多个顶层 JSON 对象。本文给出可复用的 Decode 循环,区分空输入、正常 EOF、截断 JSON、语法错误和字段类型错误,并说明 InputOffset 与 More 的使用边界。462 收藏 -
Go encoding/json 处理连续 JSON 对象时,可以为同一个 io.Reader 创建 json.Decoder,反复 Decode 并用 io.EOF 结束。本文封装一个可复用的泛型读取函数,说明空输入、语法错误、数组边界和大流式输入的处理方式。318 收藏 -
Go encoding/json 解码 PATCH 或可选配置时,普通字段无法区分缺失和显式 null。本文从 RawMessage 到泛型 Nullable,说明如何识别字段状态、处理空输入并保留类型错误。203 收藏 -
Go encoding/json 可用三态值字段区分缺失、显式 null 与正常整数。示例说明自定义解码、错误结果隔离和批次状态重置,并讨论固定结构的分配取舍。295 收藏 -
Go encoding/json 解码部分更新请求时,普通字段容易把缺失和显式 null 压成同一个零值。本文用 Optional[T] 保留 Present、Null、Value 三种状态,再用 map[string]json.RawMessage 处理动态字段,并说明对象复用与 omitempty 的边界。260 收藏 -
Go unique.Handle 适合把可比较值规范化后用于快速比较。本文从字符串键的空输入和解析错误出发,说明 unique.Make、Handle 比较、Value 取回与生命周期边界,避免把错误值混进句柄逻辑。340 收藏 -
Go unique.Handle 可直接进行相等比较。本文给出批次匹配和三组基准示例,区分字符串内容比较、句柄复用与转换成本,说明分配收益如何判断。466 收藏 -
用 Go unique.Make 将可比较字符串规范化为 unique.Handle,解释句柄比较、Value 取值、并发安全和不适用场景。364 收藏 -
Go unique.Make 可把重复的可比较值规范化为 Handle[string],用于批处理中的重复标签比较与索引。本文用一个最小示例说明它和 map[string] 的取舍、Value 边界、并发语义与持久化限制。413 收藏 -
Go unique.Make 可将重复字符串映射为可比较句柄,并通过 Value 恢复文本。本文用标签计数示例说明空输入、业务索引、并发与生命周期边界。107 收藏