Go语言技术文章
-
解释 Go cookiejar 在没有 PublicSuffixList 时为何可能跨注册域共享 Cookie,并给出使用 publicsuffix.List 配置和回归测试的方法。119 收藏 -
WithDeadlineCause 到期后,Err 用于判断统一的超时类别,Cause 用于保留创建时指定的具体原因。本文用最小示例说明两者差异、主动 cancel 边界和兼容注意事项。493 收藏 -
Go time.Time.MarshalBinary 可以保存时间点、纳秒和时区偏移,但不会保存原始 Location 名称,也不会保留单调时钟读数。本文用原创示例说明二进制往返、错误处理和额外保存 IANA 时区名的边界。391 收藏 -
Cobra 的 RunE 应该返回错误,由 Execute 向上传递,最后在 main 中统一打印并返回非零退出码。本文给出可测试的代码结构,并说明 SilenceErrors、SilenceUsage 与参数错误如何一起纳入统一出口。459 收藏 -
Go context.WithoutCancel 会切断父 Context 的取消和截止时间继承,但仍可读取 Value。本文用后台收尾场景说明如何再加独立超时,以及哪些请求值不应被带走。416 收藏 -
使用 Go 的 net.Resolver.LookupMX 查询全部邮件交换记录,解释 MX.Host 与 MX.Pref,并处理超时、排序和部分结果错误。424 收藏 -
从 PEM 和 DER 的输入边界讲清 Go x509.ParsePKCS8PrivateKey 的 any 返回值,给出 RSA、ECDSA 类型分支、统一函数封装和 PKCS#1/SEC1 格式错误处理方案。108 收藏 -
Cobra 的 Flags 只服务当前命令,PersistentFlags 会沿命令树传给后代。本文用参数作用域、命令继承和覆盖风险说明两者的选择。126 收藏 -
Go encoding/csv 解析失败时,FieldPos 可以给出最近一次 Read 返回记录中字段的起始行列,InputOffset 可以记录当前输入流的字节边界。本文把两者与 ParseError 组合起来,定位坏行并说明多字节字符、跨行引号和字段索引越界的处理方式。303 收藏 -
围绕 Go filepath.Rel 解释绝对路径、相对路径和 Windows 不同卷的错误边界,给出用 IsAbs、VolumeName 和 Rel 组合处理跨平台相对路径的实用写法。403 收藏 -
Go os.ReadDir 会按文件名返回目录项,但目录读取中途出错时也可能携带部分结果。本文区分完整清单与尽力读取,说明 DirEntry 的轻量用法,以及 File.ReadDir 的批量和 EOF 语义。125 收藏 -
解释 Go csv.Reader 读取带 UTF-8 BOM 的 CSV 时第一列出现隐藏字符的原因,并给出在输入流外层安全剥离 BOM、保留普通 UTF-8 内容和覆盖短输入边界的做法。352 收藏 -
Go csv.Reader 本身不会把 NUL 字节当成逗号或引号语法错误。本文用原始字节扫描定位 0x00 的偏移,再结合 FieldPos、InputOffset 和 ParseError 区分脏数据与 CSV 结构问题。326 收藏 -
介绍 Go parser.ParseExpr 解析单个表达式的用法,并说明为什么需要 ParseExprFrom 配合 token.FileSet 才能稳定输出文件名、行号、列号和多条语法错误。158 收藏 -
介绍 Go debug/pe.File.StringTable 的 COFF 字符串表偏移规则,演示如何读取字符串并用 COFFSymbol.FullName 解析短名称与长名称。227 收藏