Go教程技术文章
-
用 time.ParseDuration 解析带单位的毫秒和秒输入,再通过范围校验保护超时、重试和定时器配置,避免裸数字和单位误解。485 收藏 -
atomic.Value 适合发布读多写少的完整配置快照,但第一次 Store 会锁定具体类型,nil 与类型混用会 panic。本文给出 *Config 封装、深拷贝规则、基准方法及 atomic.Pointer 取舍。485 收藏 -
Go 的实验性 simd API 不把向量宽度写进类型。本文说明如何用 Len 动态分块,并用 Part 接口正确处理不足一个向量的切片尾部。485 收藏 -
Go 动态拼接正则表达式时,先用 regexp.QuoteMeta 转义用户输入,才能让点号、括号、加号等字符按字面匹配;本文同时说明模式结构、Compile 错误和替换模板的边界。484 收藏 -
Golang · Go教程 | 3星期前 | 性能优化 · Go教程 · net/http · 兼容性 · Preload Go net/http ErrNotSupported http.Pusher HTTP/2 Server Push Early Hints
Go 的 http.Pusher 仍可探测,但 Push 在客户端禁用或连接不支持时会返回 ErrNotSupported。更稳的资源加载方案是以最终 HTML 为主,按首屏预算组合 preload 与 103 Early Hints,把 Push 降级为可选加速。484 收藏 -
Go 的 regexp.ReplaceAllStringFunc 会把每个完整匹配交给回调,再用回调返回值直接替换。本文用环境标记、标签规范化和版本脱敏说明动态替换、捕获组边界及 API 选择。483 收藏 -
Go 中用 os.OpenFile 创建唯一文件时,O_EXCL 必须和 O_CREATE 一起使用。本文给出错误判断、关闭处理与并发验收指标,避免已有文件被覆盖或截断。482 收藏 -
Golang · Go教程 | 15小时前 | 标准库 · 配置管理 · 错误处理 · 并发编程 · Go教程 · Go 并发初始化 共享配置 sync.OnceValue sync.OnceValues
Go 1.21+ 可用 sync.OnceValues 把共享配置与初始化错误作为一对结果缓存,避免 sync.Once 配合外部变量造成分散状态。本文通过可测试的 ConfigProvider 展示并发只加载一次、错误传播及不适合自动重试的边界。482 收藏 -
Go archive/zip 的 Writer.Close 负责写入 ZIP 中央目录,忽略其错误可能把半成品当成成功文件。本文用分层错误处理和临时文件发布说明可靠写法。481 收藏 -
Go 遍历 tar 归档时,不要只看文件名后缀,而应读取 tar.Header.Typeflag。本文用一套最小遍历代码说明如何识别目录、符号链接和硬链接,并处理 Linkname、Read、io.EOF 及路径安全边界。481 收藏 -
用 Go t.Cleanup 把资源创建与释放登记绑定起来,理解后进先出、父子测试生命周期、提前失败和清理错误记录的实现边界。481 收藏 -
Go 的 //go:embed 资源属于 embed.FS,os.Stat 查询的是当前工作目录。本文用 fs.ValidPath、fs.Stat 和路径层级排查嵌入静态资源找不到的原因。480 收藏 -
用 go.work 在本地联调多个 Go 模块,理解 use、GOWORK=off 与 go work sync 的职责,避免把临时 replace 带进正式发布。480 收藏 -
go work sync 会用 MVS 计算工作区构建列表,再把相关依赖版本同步回各模块的 go.mod。本文给出执行、审查、tidy 分工与 CI 独立验证方法。480 收藏 -
用 go/types.Eval 查询源码位置处表达式的类型和值,讲清 FileSet、Package、Pos 的配合方式、TypeAndValue 读取方法与 Check 的边界。480 收藏