Go问答技术文章
-
regexp.Regexp.LiteralPrefix 能返回正则表达式匹配必然拥有的字面前缀,但它不是完整的匹配判断。本文用请求路径筛选示例拆开 prefix、complete 与 MatchString 的边界,并给出可验证的安全用法。229 收藏 -
Go 1.26 的实验性 runtime/secret 通过 secret.Do 清理密码学临时数据。本文用一条短命密钥处理链说明启用方式、适用边界和不能替代的安全措施。337 收藏 -
netip.ParseAddr 失败时返回的是无效 Addr 和可诊断的错误,不能只靠 Addr{} 判断输入问题。本文用最小 Go 示例拆开 IPv4、IPv6、空字符串和带区域标识的边界,并给出服务端校验时可复用的判断顺序。170 收藏 -
os.ReadFile 读配置失败时,问题通常不在读取动作本身,而在工作目录、路径拼接和错误分类。本文用一段可运行的 Go 示例拆开定位顺序,并给出能保留原始原因的错误返回方式。225 收藏 -
用 Go archive/tar.Reader.Next 遍历归档时,处理未读数据、io.EOF 与非本地路径,避免跳过文件或把危险路径直接写入磁盘。352 收藏 -
Golang · Go问答 | 48分钟前 | 标准库 · 并发编程 · 原子操作 · Go问答 · 竞态排查 · Go sync/atomic CompareAndSwap atomic.Bool 并发状态
用一个一次性初始化场景拆开 atomic.Bool.CompareAndSwap 的成功与失败路径,说明它如何把状态切换和抢占执行权合成原子动作,以及失败后何时跳过、何时重试。316 收藏 -
os.File.Sync 会把文件系统缓存中的当前内容提交到稳定存储,但它不是事务提交,也不能替应用目录的重命名与目录同步。本文用 Write、Sync、Close 的错误处理顺序拆开落盘边界。460 收藏 -
Go 的 base64.StdEncoding 默认允许一部分非零尾部填充位,Encoding.Strict 会把这类编码判为 CorruptInputError。本文用最小示例说明尾部脏位、换行容忍和 NoPadding 的边界。446 收藏 -
Golang · Go问答 | 1小时前 | 网络编程 · go · 超时处理 · Go net/http ResponseController SetReadDeadline SetWriteDeadline
Go 的 http.ResponseController 可以在处理器内设置请求读取和响应写出的截止时间,但它不是整个服务的统一超时开关。本文用两个小场景拆开 Handler、Request.Body、ResponseWriter 与底层连接的调用关系,说明超时后的错误判断、清除方式和常见误区。458 收藏 -
Go 1.24 为 net/http 增加 HTTP2Config 与 Protocols 配置。本文从服务端并发流限制和客户端兼容验证入手,说明 HTTP2Config 适合解决什么问题、哪些字段只对服务端生效,以及如何用最小代码确认协议协商结果。488 收藏 -
Go 1.24 的 os.Root 和 os.OpenInRoot 如何把不可信文件名限制在指定目录内,本文用最小代码说明路径穿越、符号链接与 Close 的边界。493 收藏 -
解释 Go 1.24 runtime.AddCleanup 的生命周期语义,重点说明 Cleanup 句柄、Stop、KeepAlive 与资源对象可达性之间的关系,并给出可验证的最小示例。492 收藏 -
Go 的 regexp.FindAllStringSubmatchIndex 返回的是每个匹配和捕获组的字节偏移,不是字符下标。本文用中文输入、空捕获组和 ExpandString 拆开它的返回结构与边界。414 收藏 -
flag.FlagSet.Visit 只遍历用户实际设置过的参数,VisitAll 则按字典序遍历全部已注册参数。通过一个可运行的小实验看清两者的回调范围、默认值和适用场景。163 收藏 -
解释 Go regexp.MustCompile 与 regexp.Compile 在配置加载中的边界:哪些规则适合启动即失败,哪些输入必须保留运行时错误,并给出可验证的代码写法。210 收藏