Go教程技术文章
-
用 Go Pond 的 NewGroup、SubmitErr 和 Wait 统一等待一批并发任务并收集错误,同时说明首个错误后的取消边界与 StopAndWait 收尾方式。444 收藏 -
用 os.DirFS 和 fs.WalkDir 固定文件系统边界,直接消费相对路径完成 Go 文件批处理,并说明路径转换、DirEntry、错误处理、排序和符号链接的性能边界。444 收藏 -
讲清 strconv.AppendQuote 如何把字符串追加为 Go 双引号字面量,说明返回值、缓冲区复用、转义边界,并给出可复现的基准比较模板。444 收藏 -
Golang · Go教程 | 1个月前 | 标准库 · 定时器 · Go教程 · Go time.Timer Timer.Reset Timer.Stop 定时器复用 asynctimerchan 旧事件
Go 1.23 默认 timer channel 已不会让 Reset 后读到旧事件,但旧版本或 asynctimerchan=1 仍需 Stop、排空 t.C 再 Reset。本文按版本、接收状态和 AfterFunc 边界给出可复用写法。443 收藏 -
用 Go slog.LogValuer 延迟展开业务对象:以轻量包装器配合 GroupValue 控制字段、脱敏和派生计算,并说明自定义 Handler、可变对象与 Resolve 的边界。443 收藏 -
Go 1.23 引入的 os.CopyFS 可以把 embed.FS 等 fs.FS 资源复制到本地目录。本文用一个嵌入静态资源的场景说明调用方式,并梳理目录创建、既有文件冲突、符号链接和首个错误的处理边界。443 收藏 -
在 Go 中用 crypto/rand.Read 生成固定长度的加密安全随机字节,说明切片长度、十六进制与 Base64 编码、错误边界,以及它和 math/rand 的使用区别。443 收藏 -
Go 判断链路本地 IP 时,可以先用 netip.ParseAddr 解析文本,再调用 Addr.IsLinkLocalUnicast。本文用 IPv4、IPv6 和带 zone 的 IPv6 示例说明返回值,并区分私有、回环、组播和无效地址。443 收藏 -
Go regexp.Expand 使用匹配索引从原文取出捕获组,并按模板追加到字节切片。本文通过资源标签示例说明变量边界、返回值、缺失组和批量展开的注意事项。443 收藏 -
说明 Go archive/zip.FileHeader.SetModTime 的使用方式、UTC 转换、MS-DOS 时间精度和 Modified 字段迁移边界。443 收藏 -
说明 snowflake.ID 如何用 Base58 生成可传输文本,再用 ParseBase58 还原编号,并梳理字符表、错误处理与排序语义边界。443 收藏 -
Go os.OpenFile 的 O_SYNC 会影响写入的同步语义,但它不是事务或跨文件原子提交。本文用 O_APPEND、O_CREATE、f.Sync 和 Close 对比写入配置、性能成本与资源错误处理边界。443 收藏 -
用 Go 1.23 的 iter.Pull 把 iter.Seq 转成 next/stop 逐项读取,覆盖 ok 判断、提前退出和 defer stop 的可复用写法。443 收藏 -
讲清 Go types.SizesFor 如何按 compiler 和 arch 选择布局模型,并用 types.Sizes 计算类型对齐、字段偏移与总大小,覆盖 nil、padding 和跨架构报告边界。443 收藏 -
说明 Go archive/zip 如何使用 OpenRaw 和 CreateRaw 原样复制已压缩条目,覆盖 FileHeader 复制、中央目录收尾、重名处理、ErrInsecurePath 与 CreateHeader 的适用边界。442 收藏