Go语言技术文章
-
Go crypto/sha256.New224 返回 SHA-224 的 hash.Hash,摘要长度由 Size224 固定为 28 字节。本文结合分段写入、Sum 追加语义和一次性 Sum224,说明如何正确输出摘要并避免把切片前缀或哈希状态理解错。363 收藏 -
Golang · Go教程 | 8小时前 | 并发 · 标准库 · Context · 资源管理 · Go教程 · Go Goroutine 资源清理 context取消 context.AfterFunc
本文用一个可复用的最小示例说明 Go context.AfterFunc 如何在上下文取消后安排异步清理,重点解释 stop 返回值、清理完成通知、竞态和幂等边界。331 收藏 -
Go context.WithCancelCause 适合把批处理中的首个取消原因沿 Context 传给调用方。本文区分 Err 与 Cause,给出批次级 worker 示例,并说明如何用稳定错误和一次派生上下文减少额外结果包装与分配。178 收藏 -
本文用一个小型 Go 示例说明 weak.Make、weak.Pointer.Value、nil 输入和 runtime.KeepAlive 的关系,帮助你判断弱引用适合缓存还是不适合承担生命周期保证。301 收藏 -
context.WithCancelCause 让调用方既能判断上下文已经取消,又能读取导致取消的具体错误。本文用一个可复用的 worker 示例说明 cancel、Cause、父子上下文和 nil cause 的边界。103 收藏 -
Go 的 crypto/sha512.New384 返回 SHA-384 哈希对象,摘要原始长度固定为 48 字节。本文结合 hash.Hash、Sum 的追加语义和十六进制编码,说明如何避免把字节长度误读成字符串长度。396 收藏 -
本文说明 Go crypto/subtle.ConstantTimeByteEq 的 uint8 参数、1/0 返回值、最小封装,以及它与 ConstantTimeEq 和 ConstantTimeCompare 的适用边界。165 收藏 -
本文从大文件不应整段复制的场景出发,用 Go io.SectionReader 按绝对偏移和区间长度创建读取窗口,说明 Read、ReadAt、Seek、Size、EOF、文件关闭和 ReadAll 的边界。189 收藏 -
Golang · Go教程 | 9小时前 | 并发 · 标准库 · 定时任务 · 性能优化 · Go教程 · 批处理 计时器 Go 内存分配 time.Ticker Ticker.Reset Ticker.Stop
Go time.Ticker 的关键不在于盲目调用 Stop,而在于明确 ticker 的生命周期:用 context.Done 结束周期任务,用 Stop 停止后续 tick,用 Reset 复用同一任务内的节拍,避免批处理循环反复创建 ticker 和失去资源归属。404 收藏 -
用 time.Ticker 做周期任务时,停止条件、空输入和任务错误应该分开处理。本文从 NewTicker、select、context 和 defer Stop 讲清一个可复用的实现边界,并补充 Go 1.23 之后的回收语义。276 收藏 -
Go 的周期任务不应该靠关闭 ticker.C 退出。本文用 context、time.NewTicker 和 defer Stop 写一个可复用示例,说明停止任务、停止 ticker、通道不关闭以及慢处理和版本边界。493 收藏 -
Golang · Go教程 | 9小时前 | 标准库 · 错误处理 · go · 时间处理 · Go 时区 日期解析 time.LoadLocation time.ParseInLocation time.Location
Go 解析不带时区的本地日期时,应先加载指定的 time.Location,再调用 ParseInLocation。本文区分空输入、未知时区和日期格式错误,并用 errors.Is 与 %w 保留调用方可判断的错误语义。310 收藏 -
Go ParseInLocation 可按指定 Location 解释无时区日期。本文给出批量解析示例,说明复用时区、结果预分配、日期转换差异和错误处理边界。147 收藏 -
Golang · Go教程 | 9小时前 | 标准库 · time · Go教程 · 日期时间 · Go 时区 日期解析 time.LoadLocation time.ParseInLocation time.Location
本文从无时区日期被解析成 UTC 的现象出发,用 Go time.LoadLocation 和 time.ParseInLocation 完成指定时区的本地日期解析,并说明输入错误、加载失败、固定偏移和夏令时边界。174 收藏 -
Go hash/crc32.MakeTable 可以把自定义 CRC 多项式转换成可复用的校验表。本文用 CRC32-Q 说明如何一次创建、重复计算,并区分多项式表示、哈希状态与安全摘要边界。371 收藏