Go教程技术文章
-
用一个分页读取场景说明 Go 1.23 range over function 的提前停止语义,拆开 yield 返回 false、错误保存和调用方收尾之间的边界,给出可运行的 iter.Seq 示例与验收方法。497 收藏 -
bytes.Reader 读取内存字节时会维护当前位置。本文用 SeekStart、SeekCurrent 和 SeekEnd 解释如何跳转偏移、重放同一份数据,并区分 Len、EOF 与越界错误。496 收藏 -
用 Go bufio.Reader.ReadBytes 区分完整记录、带数据的尾部 EOF、干净结束和非 EOF 错误,并根据协议决定是否接受没有终止分隔符的尾记录。496 收藏 -
Go errors.Join 可以把多个非 nil 错误组合成一个错误,并通过错误树继续支持 errors.Is 和 errors.As。本文从批量处理场景说明 nil 过滤、匹配能力、输出格式与使用边界。496 收藏 -
Go sync.OnceValue 把一次延迟计算封装成可并发调用的函数,后续调用共享同一结果。本文说明它的基本写法、错误与 panic 边界,以及为什么刷新数据必须重建闭包。496 收藏 -
用context.WithTimeout或WithCancel建立脚本取消条件,再通过LState.SetContext绑定。示例说明执行错误、资源清理与Go回调的协作取消边界,避免并发关闭同一Lua状态。496 收藏 -
使用 Go slices.SortStableFunc 按结构体字段排序,掌握等值元素保序、多字段比较、降序规则与原地修改边界。496 收藏 -
同一个 Go http.Client 可以通过请求级 Context 为健康检查、普通查询和慢速报表设置不同超时。本文从一个请求巡检器出发,说明 Client.Timeout、context.WithTimeout、响应体关闭和连接复用的关系。496 收藏 -
从 fatal error: concurrent map read and map write 的现场出发,演示如何用竞态检测确认问题,再比较读写锁、单 goroutine 所有权和分片 map 的适用边界。496 收藏 -
Go go-wav 写 WAV 的关键是让 IntBuffer 的采样率、声道数和位深与 Encoder 参数一致,并在 Write 后调用 Close 刷新文件头。本文给出临时文件、错误回滚和格式记录的实用写法。495 收藏 -
介绍 Gonum optimize 如何使用 Settings.Runtime 设置时间预算,并通过 RuntimeLimit、Result.Status 与 Stats.Runtime 区分时间到期和正常收敛。495 收藏 -
Gonum quad.Fixed 的最后一个参数 concurrent 用来限制函数回调同时执行的数量。本文区分采样点数量与并发上限,并说明共享状态回调的安全处理方式。495 收藏 -
Go context.AfterFunc 可在上下文取消后执行清理,但 stop 不代表清理完成。通过独占停止句柄和完成通道,组织正常返回与取消回调,接收清理错误,并明确并发访问、等待和资源所有权的限制。495 收藏 -
Go 可以用 //go:embed 把模板目录编译进程序,再把 embed.FS 交给 html/template.ParseFS 读取。本文重点说明目录匹配、正斜线路径、错误处理和复用方式。495 收藏 -
Go 遍历目录时,可以在 filepath.WalkDir 回调中判断 DirEntry,再用 filepath.SkipDir 跳过指定子树。本文比较本地路径与抽象 FS 的写法,说明目录匹配、错误处理、SkipAll 和符号链接等边界。495 收藏