Go语言技术文章
-
Go 测试使用 t.TempDir 创建临时目录时,目录会在当前测试及其子测试全部结束后自动清理。本文拆解清理时机、并行子测试、路径拼接和失败复现边界,给出可直接回归的测试写法。145 收藏 -
Go map 直接读取时,缺失键和真实的零值会得到同一个结果。本文用 ok 语法、comma-ok 判断和 nil map 示例,说明如何区分存在性、避免误判,并把判断边界写进函数接口。145 收藏 -
atomic.Value 的 Store 参数虽然是 any,但同一个 Value 首次写入后就锁定具体类型。本文用最小复现定位值类型、指针类型和 nil 导致的 panic,并给出稳定快照的修复写法。145 收藏 -
讲清 Go csv.Writer 如何用 UseCRLF 固定 LF 或 CRLF 行尾,并在 Flush 后通过 Error 确认最后一批 CSV 数据已经交给底层 writer。145 收藏 -
Go sort.Search 返回的是第一个满足条件的索引,不是目标值。本文用一个有序档位查找小项目,讲清索引读取、精确命中、插入位置与 n 的边界处理。145 收藏 -
用 Go embed.FS 按 v1、v2 目录嵌入静态资源,结合 fs.Sub、FileServer 和资源清单保持 URL 稳定,并处理版本切换、缓存与回滚边界。145 收藏 -
解释Go io.Copy遇到Writer短写但返回nil错误时的处理结果,说明io.ErrShortWrite、WriterTo与ReaderFrom快路径,以及自定义Writer的修复方式。145 收藏 -
围绕 Go crypto/rand 生成安全令牌,说明随机预算、URL 安全编码、存储轮换边界与指标验证方法。145 收藏 -
reflect.Value.Clear 对 map 会删除全部条目并让长度变为 0,对 slice 则只把当前长度范围内的元素设为零值,长度和容量保持不变。本文用示例讲清别名、nil、Kind 和 CanSet 边界。145 收藏 -
Go strconv.ParseFloat 返回 ErrRange 时,返回值通常是 ±Inf,不能直接当作普通业务数值使用。本文用示例说明 ErrRange、ErrSyntax、bitSize 与有限值校验的处理边界。145 收藏 -
Webhook 只校验 HMAC 还不够:攻击者可以把合法请求原样重发。本文用时间戳、Nonce、HMAC-SHA256 和一次性记录,完成一套可复查的 Go 签名校验流程。144 收藏 -
Golang · Go问答 | 1个月前 | 并发 · time · 定时任务 · Timer · Go问答 · 定时器 Go 定时任务 停止 time.Ticker time.After time.NewTimer
Go 里一次性超时、可重置等待和周期任务分别适合 time.After、time.NewTimer 与 time.Ticker。本文用三个小场景对比它们的触发语义、停止方式、慢任务边界和 Go 1.23 定时器变化,给出可直接复用的选择规则。144 收藏 -
Golang · Go教程 | 1个月前 | WEB开发 · golang · go · net/http · ServeMux · Go 模式匹配 路由冲突 http.ServeMux PathValue
Go 1.22 扩展了 http.ServeMux 的方法、通配符和优先级规则。本文用最小可运行示例排查重叠模式、405 响应和 PathValue 取值,给出注册阶段与请求阶段的验证清单。144 收藏 -
bytes.Buffer Reset 只把当前长度归零,不会自动擦除底层数组。本文用 Bytes、Reset 和 Write 的实际关系解释旧切片为何还能读到内容,并给出安全复用与释放引用的判断方法。144 收藏 -
Go 用 close(channel) 做退出广播很方便,但重复关闭会 panic。本文说明单一关闭者、sync.Once、只读通道和数据通道所有权之间的边界。144 收藏