Go教程技术文章
-
Go 1.23 引入的 os.CopyFS 可以把 embed.FS 等 fs.FS 内容复制到磁盘,但不会覆盖已有文件。本文用一个配置目录示例讲清创建权限、覆盖错误、符号链接和可重复部署的核对方法。374 收藏 -
用一个可运行的小例子说明 Go embed.FS 读取嵌套资源时的路径规则、fs.ValidPath 校验边界与错误处理方式,避免把磁盘路径习惯带进嵌入文件系统。374 收藏 -
Go 服务收到 SIGINT 或 SIGTERM 后,不能只依赖进程直接退出。本文拆解 os/signal.NotifyContext 如何把信号转成 context.Done,说明 stop 的资源释放、取消传播和优雅退出的验收边界。374 收藏 -
用 Go io.ReadFull 读取固定长度协议,区分 io.EOF 与 io.ErrUnexpectedEOF,并根据 n 和 err 做可靠的缓冲区验收。374 收藏 -
介绍 Go regexp 命名捕获组的读取方法:用 SubexpNames 对齐名称和匹配结果,用 SubexpIndex 定点取值,并安全处理 nil、-1、可选组和动态正则编译错误。374 收藏 -
Golang · Go教程 | 1个月前 | Context · 并发控制 · Go教程 · Go Deadline context.Context 取消信号 context.WithoutCancel
Go context.WithoutCancel 会继续沿父上下文读取 Value,但不继承取消信号、deadline、Err 和 Cause。本文用可观察的字段对照、异步收尾示例和检查清单,说明如何重新建立安全的任务退出边界。374 收藏 -
Go sync.Pool适合复用临时对象,但池中对象可能被GC自动丢弃。本文把对象复用链与生命周期指标拆开,用池外原子计数器记录New、Get、Put,再用基准指标判断是否真的降低了分配压力。374 收藏 -
fs.ValidPath 适合校验传给 fs.FS.Open 的斜杠路径,但它不是本地路径检查器,也不会处理 URL 解码、符号链接和真实文件系统边界。本文用有效与无效样例梳理规则,并给出 HTTP、归档和本地路径场景的安全写法。374 收藏 -
Go strings.Builder 的容量优化关键不在盲目调用 Grow,而在于按最终文本的字节数估算预算、用 Len 和 Cap 观察结果,并把 String、Reset 与禁止复制非零 Builder 的边界分清。374 收藏 -
围绕 Go context.WithCancel 的生命周期,说明为什么创建后应立即 defer cancel,以及长任务如何让 worker 监听 Done 并正确收尾。374 收藏 -
Go runtime/metrics 通过 All 返回当前支持的指标描述。本文演示怎样按 Name、Description、Kind 和 Cumulative 筛选指标,并安全创建 Sample 读取,兼顾不同 Go 版本的支持集合差异。374 收藏 -
Go 处理土耳其语大写时,不要把语言规则简化为 ASCII 替换。使用 x/text/cases 的 Upper(language.Turkish),即可按土耳其语处理点号 I 和无点 I;本文同时说明 String、Bytes、流式转换和 Caser 并发边界。374 收藏 -
Golang · Go教程 | 1星期前 | Go教程 · 模块管理 · Go 离线构建 go.work go mod vendor vendor/modules.txt go work vendor Go工作区
Go work vendor 适合为 go.work 定义的多模块工作区生成共享 vendor 依赖目录。本文说明工作区边界确认、vendor 生成、离线构建入口以及 go.work、go.mod 与 vendor/modules.txt 的一致性排查,并区分 go work vendor 与 go mod vendor 的适用场景。374 收藏 -
用 bytes.Reader.WriteTo 把内存中的字节流交给 io.Writer,重点核对读取游标、短写返回和 Reader 复用时的状态边界。373 收藏 -
介绍 Go 使用 compress/gzip 流式压缩 HTTP 响应的正确顺序:协商响应头、写入 gzip、依次 Flush,并在 Close 时处理 GZIP footer 与错误。373 收藏