Go语言技术文章
-
Go 的 encoding/json 会把 nil slice 编码成 null,把初始化但长度为 0 的空 slice 编码成 []。本文用最小示例、omitempty 和 API 返回策略说明如何判断与统一这种空值语义。112 收藏 -
介绍GJSON读取点号键名的路径转义写法,区分Go字符串与GJSON语法,并用完整示例说明动态组件转义、字段白名单和缺失结果处理。111 收藏 -
Go 可以用带容量的 channel 保存令牌限制同时执行的任务数,并通过 context 取消等待、defer 归还令牌,避免并发失控或槽位泄漏。111 收藏 -
Go httptest 默认使用系统选择的回环端口;出现端口被占用时,重点检查是否通过 -httptest.serve 或自定义 Listener 固定了地址,以及测试结束是否调用 Close。111 收藏 -
Go math/rand/v2 ChaCha8 同时提供 Read 和 Uint64,但两者交错调用时返回位顺序未定义。本文说明可复现测试、拆分随机源和状态快照的稳定写法。111 收藏 -
Go JSON 出现重复字段时,map、struct 和嵌套对象可能得到不同结果。本文按 encoding/json v1 的处理顺序说明覆盖与合并,并补充 encoding/json/v2 的严格差异和排查清单。111 收藏 -
Go atomic.Uint32.And 用按位与原子清除指定标志,并返回更新前的完整位图。本文说明 ^mask 的正确写法、组合状态处理和并发边界。111 收藏 -
http.ParseCookie 返回 Cookie 列表,重复名称不会自动合并。用 map[string][]string 追加同名值,同时保留原列表顺序,并说明多条请求头、空值、解析错误及业务选择规则。111 收藏 -
Go net.IP.Mask 会把 IP 地址与 IPMask 按字节做按位与,把主机位清零得到网段地址。本文从 IPv4、IPv6 的掩码构造讲到 ParseCIDR、nil 结果和 IPv4 映射地址边界,帮助你稳定生成网段键。111 收藏 -
textproto.MIMEHeader.Values 会返回指定键关联的全部值,适合处理重复邮件头;Get 只取首值。本文用原创 Go 示例说明大小写键、缺失字段、nil map 与返回切片可变等边界。111 收藏 -
Go 跨站请求没有带上 Cookie,通常要同时检查 http.Cookie 的 SameSite、Secure、Domain、Path,前端 credentials 和 CORS。本文按响应头、浏览器请求、Go 读取三层给出排查顺序。111 收藏 -
url.PathEscape 处理的是一个 URL 路径段,斜杠会被编码为 %2F。本文解释 URL.Path、RawPath、EscapedPath 的区别,给出避免二次解码、按段拼接和批量减少临时字符串的 Go 写法。111 收藏 -
用 go/types 对完成类型检查的 Package 取出 Scope,按稳定顺序列出包级对象,再用 Object.Exported 和 Lookup 过滤并读取导出 API 的类型信息。111 收藏 -
Go 的 go/constant.MakeImag 会把 Int、Float 或 Unknown 作为虚部系数,返回 x*i 的 Complex Value。本文用 BinaryOp 组合实部和虚部,说明精确常量、Unknown、非法输入以及 Float64Val 转换时的边界。111 收藏 -
Go zlib 解压出现校验和错误时,需要区分尾部不匹配、输入截断和关闭错误。本文用受控小样本演示完整读取、保留错误链与失败正文隔离,并说明压缩器关闭和底层资源的处理责任。110 收藏