Go教程技术文章
-
Go使用NewReaderDict和约定的预置字典解压zlib输入。本文用有输出上限的完整示例说明ErrDictionary、读取校验、Close及输入重试位置,避免把部分结果误认为成功。499 收藏 -
Go encoding/csv 中把 Reader.Comment 设为 0 就能关闭注释行过滤,让井号开头的文本回到普通 CSV 记录;文章同时说明首次读取前的配置时机、前导空白、Comma 冲突和格式错误边界。499 收藏 -
用 fsnotify 监听配置文件时,连续 Write 事件并不等于连续修改。本文用一个可验证的去抖窗口合并写入抖动,再把稳定事件交给配置重载函数,并处理 Rename、Chmod 和 watcher.Errors 边界。499 收藏 -
Go 1.23 起可以用 slices.Chunk 把切片按固定大小分成连续子切片并直接遍历。本文说明最小写法、尾块、空输入、非法 n、底层数组关系,以及旧版本 Go 的兼容实现。498 收藏 -
用 Go sync.Cond 实现有界队列时,关键不是记住 Signal 还是 Broadcast,而是让状态判断、Wait 循环和通知都在同一把锁下完成。本文拆解未满、非空和关闭三个条件,并给出按现象排查卡住问题的清单。498 收藏 -
Go testing.T.Cleanup 的关键不是把回调写在哪里,而是看它注册到哪个测试作用域以及登记顺序。本文解释同一 T 上的 LIFO 规则、父子测试边界、资源依赖登记方式和并发注册的排查方法。498 收藏 -
Go slog.HandlerOptions.Level 是日志最低级别门槛。本文用 TextHandler 和 JSONHandler 说明如何过滤 Debug,如何用 LevelVar 动态打开调试日志,并排查默认 logger、独立 logger 与性能开关不生效的问题。498 收藏 -
Go 使用 bufio.Reader 逐行读取时,ReadString 和 ReadBytes 会保留换行分隔符;本文对比 ReadLine、Scanner,并给出正确处理 CRLF 与 EOF 最后一行的写法。498 收藏 -
Go 1.27 为 QUIC 服务端握手增加 QUICConfig.ClientHelloInfoConn,用来指定 ClientHelloInfo.Conn 的底层连接。本文区分 TLS Conn、QUICConn 与底层 net.Conn,说明只读边界和回调取值方式。498 收藏 -
Go t.Run 子测试采用唯一语义标识,可让 CI 重跑命令保持稳定。本文比较命名方式,给出分组代码与分段正则,解释重复名、斜杠和父测试执行的边界。497 收藏 -
Go 1.26 为 testing.T、testing.B 和 testing.F 增加 ArtifactDir。本文用一个测试产物写入场景,讲清 -artifacts、-outputdir 与临时目录的保留边界。497 收藏 -
用一个分页读取场景说明 Go 1.23 range over function 的提前停止语义,拆开 yield 返回 false、错误保存和调用方收尾之间的边界,给出可运行的 iter.Seq 示例与验收方法。497 收藏 -
用context.WithTimeout或WithCancel建立脚本取消条件,再通过LState.SetContext绑定。示例说明执行错误、资源清理与Go回调的协作取消边界,避免并发关闭同一Lua状态。496 收藏 -
使用 Go slices.SortStableFunc 按结构体字段排序,掌握等值元素保序、多字段比较、降序规则与原地修改边界。496 收藏 -
同一个 Go http.Client 可以通过请求级 Context 为健康检查、普通查询和慢速报表设置不同超时。本文从一个请求巡检器出发,说明 Client.Timeout、context.WithTimeout、响应体关闭和连接复用的关系。496 收藏