Go语言技术文章
-
Go 定时轮询要立即执行一次,不能等待 time.NewTicker 的第一拍。把任务抽成函数先直接调用,再用 ticker.C 驱动后续周期,并用 context 控制退出。419 收藏 -
io/fs.ValidPath 只接收 string,不能直接复用调用方的 []byte。动态路径应复用 []byte scratch,完成一次受控的 string 转换后再校验,并注意临时字符串的生命周期、容量和并发隔离。419 收藏 -
Go net/http.Transport 返回 error 时,先区分 HTTP 响应与传输失败,再沿错误链识别取消、超时、连接和 URL 原因,并据此安排日志与重试。419 收藏 -
crypto/subtle.XORBytes 会按两个输入切片的较短长度写入,但输入长度不一致并不是普通截断场景。本文结合官方文档说明 dst 长度、输入长度、返回值和切片重叠的边界。418 收藏 -
Go 1.23 新增的 unique.Make 可以把 comparable 值规范化为可比较的 Handle。本文从字符串标签注册场景出发,组合一个小型工具,说明去重、Handle 比较、Value 读取以及并发边界。413 收藏 -
Go tar 解包应分别处理条目名与链接目标。本文采用默认拒绝链接的严格策略,用 os.Root 与私有暂存目录限制实际写入,并说明词法检查、平台差异及资源预算边界。411 收藏 -
本文用 strings.CutSuffix 处理重复后缀,说明它为什么只删除最外层一次、怎样区分未命中和空结果,以及什么时候应该循环剥离或限制次数。410 收藏 -
Go regexp.Regexp.LiteralPrefix 可以提取所有匹配都必须以它开头的字面字符串,并用 complete 区分完整正则与前缀过滤条件。本文用固定开头、字符类、分支和 HasPrefix 预过滤示例说明它的边界。406 收藏 -
go mod tidy 失败时,先按模块路径、版本选择、代理下载和本地文件四类原因分流,再用 go list、go env 和文件 diff 缩小范围。本文给出可重复的排查命令,以及修复后的干净回归方法。404 收藏 -
Go 工具链在目录、终端和 CI 中选择不同版本时,如何核对 PATH、GOTOOLCHAIN 与项目声明,控制执行来源并记录实际版本。404 收藏 -
Go runtime/metrics 的 Float64Histogram 需要先检查 Value.Kind,再用相邻 Buckets 边界解释 Counts 分桶。本文给出安全读取、区间配对、总量汇总和累计指标判断方法。403 收藏 -
本文把 os.OpenRoot 的目录边界、manifest 的有序文件名切片和 slices.BinarySearch 的命中判断组合起来,演示如何在受限根目录内定位并读取文件,同时处理未命中、越界路径和资源释放。403 收藏 -
Golang · Go问答 | 21小时前 | 标准库 · Go问答 · 版本升级 · Go Base strconv.ParseInt Go升级 bitSize NumError ErrRange ErrSyntax ParseInt行为
Go 升级后 strconv.ParseInt 结果看似变化,通常应先比较输入字符串、base、bitSize 和 error 处理。本文用一套可复现的排查入口拆开前缀推断、位宽范围与 NumError,帮助判断差异来自调用契约还是升级本身。401 收藏 -
reflect.Value.SetString 只有在目标值有效、Kind 为 String 且 CanSet 为 true 时才适合调用。本文说明指针取 Elem、结构体字段和未导出字段的边界。400 收藏 -
Go 拼接带有路径参数的 URL 时,直接把原始字符串放进 Path 容易让斜杠、空格或问号改变路径结构。本文说明 net/url.PathEscape 的正确边界,并对比 QueryEscape、url.URL.Path、RawPath 和重复转义问题。400 收藏