Go语言技术文章
-
StringLen 可避免为查询长度而展开完整字符串,但不保证无限输入或固定耗时。本文说明 int64、Unknown、panic 与字节单位边界,给出长度展示组件及分阶段资源预算建议。484 收藏 -
Go errors.As 返回 false 时,先看错误实现的 Error 接收者和实际动态类型,再决定目标变量是 *T 还是 T。本文用一个小型校验错误示例说明指针错误、值错误、%w 包装和常见声明误区。483 收藏 -
连接超时不限制响应体读取。通过有限响应客户端示例区分拨号、响应头和总预算,处理 context 生命周期、读取错误、正文大小与关闭责任,并说明流式请求的不同策略。483 收藏 -
Go 中按指定时区生成日期边界时,应让 time.Date 和 AddDate 共享同一个 time.Location,并用当天零点到下一天零点的半开区间做查询。本文说明时区加载、夏令时边界和固定 24 小时截断的区别。482 收藏 -
Go 的 os.File.Chdir 可以把已经打开的目录句柄设为当前工作目录,适合需要复用目录句柄的场景。本文从一次相对路径读取失败的排查开始,说明打开、切换、恢复、关闭和并发边界。482 收藏 -
区分Gonum Dense.Solve的维度panic与Condition返回错误,用原创方阵示例说明输入合同、接收器复用、数值可靠性和失败结果处理。482 收藏 -
Go archive/zip 的 FileHeader.CreatorVersion 不是单纯的版本号,其中包含 ZIP 条目创建平台和版本信息。本文给出拆解高低字节、读取常见平台标识以及结合 ExternalAttrs 判断权限的实用写法。481 收藏 -
Go math/rand/v2 的 ChaCha8 在同一份 [32]byte 种子和同一调用方式下可以复现原始 Uint64 序列;如果序列不同,优先排查种子字节、实例是否已被消费、Read 与 Uint64 是否交错,以及是否把 Rand 的派生方法误当成固定一步消费。481 收藏 -
Go 的 fs.FormatDirEntry 可以把 DirEntry 转成适合人阅读的短文本。本文从目录读取、遍历输出和边界判断说明它与 FileInfo 格式化的区别。481 收藏 -
Go 的 net/url.JoinPath 适合把基础 URL 与多个路径片段组合起来,并清理重复斜杠和相对片段。本文说明包级函数、URL.JoinPath、PathEscape、查询参数保留以及与 ResolveReference 的边界。481 收藏 -
Go workspace 明明写了 use 却没有使用本地模块,通常是路径没有指向 go.mod 所在目录、嵌套模块没有单独加入,或当前命令根本没有加载目标 go.work。本文按症状拆开判断和修复方法。479 收藏 -
在 Go Expr 编译阶段用 AsBool 建立布尔返回契约,配合 WarnOnAny 处理 any 类型表达式,并区分编译错误、运行错误与结果接收边界。479 收藏 -
使用 Go go-diff 的 diffmatchpatch 按行压缩两段文本,经过 DiffMain 计算差异后还原原始行,并处理语义清理、换行和 UTF-8 边界。479 收藏 -
在 Go 静态分析中,类型别名不能只按 Named 类型处理。本文用 go/types.Alias.Rhs 读取 type A = R 的右侧类型,并说明 Alias、别名链与 types.Unalias 的边界。477 收藏 -
Golang · Go教程 | 6天前 | 标准库 · JSON · 错误处理 · go · 调试 · Go errors.As encoding/json/v2 SemanticError JSONPointer
Go encoding/json/v2 解码失败时,SemanticError 会携带 ByteOffset、JSONPointer 和 GoType 等上下文。本文用嵌套配置示例说明如何提取这些字段、转换行列位置,并区分语法错误、语义错误与流式读取错误。477 收藏