Go语言技术文章
-
围绕 Go os.CreateTemp 讲清临时文件写入、Sync、Close、路径交接、权限边界与消费后的清理责任。159 收藏 -
使用 slices.Delete 删除切片区间时,关键是接收返回值、理解原地搬移和尾部清零,并根据元素是否含指针处理底层引用与批量删除边界。171 收藏 -
Go os.CreateTemp 的 pattern 不是完整文件名模板,而是带可选星号的前缀和后缀规则。本文用批次前缀、随机段和扩展名组成可追踪临时文件名,说明 Name、Write、Close、Remove 的配合方式,以及目录、权限和失败清理的边界。414 收藏 -
使用 Go slices.SortStableFunc 按结构体字段排序,掌握等值元素保序、多字段比较、降序规则与原地修改边界。496 收藏 -
Go filepath.Glob 无匹配时不会返回错误,真正需要区分的是空结果、ErrBadPattern 和目录范围问题。本文用可复用代码给出排查与封装方法。199 收藏 -
用 sync.WaitGroup 负责并发任务的完成计数,再配合带容量错误通道与 errors.Join 汇总每个任务的失败原因,覆盖 Add、Done、Wait、close 的时机和取消边界。188 收藏 -
围绕 Go filepath.Rel 讲清相对路径计算前提、Windows 跨盘错误、VolumeName 与 IsAbs 判断,以及失败后的绝对路径或业务错误回退方案。396 收藏 -
围绕 Go sync.WaitGroup 的独立批次复用,说明 Add、Done、Wait 的阶段边界、动态追加风险和不可复制约束。272 收藏 -
本文用 filepath.IsLocal、filepath.Clean、filepath.Join 和 filepath.Rel 处理 Go 用户路径,说明词法规范化、固定根目录拼接与符号链接安全检查的边界。273 收藏 -
Go sync.WaitGroup 的关键不是把 goroutine 等住,而是让 Add、Done 与 Wait 围绕同一批任务形成稳定配对,本文给出可直接复用的写法与排查边界。123 收藏 -
从 net.Listen 的 network 和 address 入手,判断 Go TCP 监听只接受 IPv4 或 IPv6 的原因,并给出单族监听与显式双监听的处理方案。463 收藏 -
Go atomic.Value 的零值 Load 可以返回 nil,但 Store(nil) 会 panic;本文说明首次 Store 如何固定具体类型,以及如何用结构体或指针安全表达空配置状态。479 收藏 -
围绕 Go net TCP 监听地址,说明通配地址、具体网卡 IP、tcp4/tcp6 与双栈边界,并给出启动异常的排查清单。134 收藏 -
Go atomic.Value 适合保存读多写少的只读配置快照。本文从首次 Store、并发 Load、复制旧值到一次性替换,给出可复用的实现方式,并标出类型一致、原地修改和生命周期边界。375 收藏 -
说明 Go net 连接 IPv6 链路本地地址时的 zone、方括号、tcp6、JoinHostPort 和 DialContext 参数边界。106 收藏