Go教程技术文章
-
go list -json 可以直接给出 Go 包的 EmbedPatterns、EmbedFiles 以及测试嵌入字段。本文按普通包、内部测试包和外部测试包拆解查询方式,并说明如何把结果交给检查脚本。394 收藏 -
项目同时维护 mock、stringer 和资源生成指令时,go generate -run 可以按指令完整原文的正则匹配只执行目标任务。本文从一次误触发现场讲清匹配范围、精确写法、预览排查和防复发约定。453 收藏 -
用 Action、Package、Test 和 FailedBuild 读懂 go test -json 的换行 JSON 流,区分测试事件、构建事件与包级结果。173 收藏 -
Go 基准测试里的 ReportAllocs 不是全局开关。本文用 ResetTimer、b.N 和 b.Loop 拆开准备阶段与被测循环,说明怎样确认 allocs/op 和 B/op 只统计正确代码。423 收藏 -
Golang · Go教程 | 3小时前 | 基准测试 · testing · 性能 · Go教程 · GOMAXPROCS RunParallel Go testing.B.SetParallelism 并行基准 IO吞吐
围绕 Go testing.B.SetParallelism 说明 IO 型 RunParallel 基准为何需要调整并发倍数,给出 p×GOMAXPROCS 的换算、独立 worker 写法、档位对比和连接池边界判断。404 收藏 -
Go testing.T.Cleanup 会在测试及其子测试完成后执行已注册回调,并按后注册先执行的顺序收尾。本文用资源依赖和子测试作用域说明怎样安排注册顺序,避免测试夹具提前失效。309 收藏 -
Go 的 flag.FlagSet 通过 ContinueOnError 把参数解析失败交给调用方处理。本文比较三种 ErrorHandling 策略,并给出可复用、可测试的解析函数写法。273 收藏 -
Go flag.BoolFunc 适合无显式值但需要每次触发动作的命令行开关。本文说明重复解析、显式值、错误处理,以及它和 Bool、Func、自定义 Value 的选择边界。246 收藏 -
Golang · Go教程 | 4小时前 | 反射 · Go教程 · database/sql · Go database/sql Rows.Scan ColumnType ScanType 动态查询导出
Go 动态 SQL 导出不知道列结构时,可以先读取 Rows.ColumnTypes,再用 ColumnType.ScanType 返回的 Go 类型创建 Scan 指针;驱动不提供具体类型时回退到 any,扫描后复制字节切片并保留 NULL。381 收藏 -
用一个可复用的 TextUnmarshaler 类型接入 Go flag.TextVar,讲清默认值、错误处理以及 TextVar、Var、Func 的选择边界。479 收藏 -
Go database/sql 的 Scanner 接收到的 []byte 可能由驱动暂时拥有,下一次 Scan 后就不再适合长期引用。本文区分 *[]byte、sql.RawBytes、interface{} 和自定义 Scanner 的复制边界。343 收藏 -
Go database/sql 读取多个 SQL 结果集时,要在每组内部用 Rows.Next 遍历行,当前组结束后用 NextResultSet 切换,并在每次切换后重新调用 Next;本文给出两层循环、空结果集和错误处理写法。456 收藏 -
使用 Go 的 xml.Decoder 流式读取 XML 时,先用 Token 找到目标 StartElement,再用 DecodeElement 把当前节点和嵌套内容解码到结构体,并正确处理 EOF、错误和循环边界。436 收藏 -
Go 的 json.Encoder 默认会把 <、>、& 写成 Unicode 转义。本文按 JSON 的实际消费边界比较默认策略与 SetEscapeHTML(false),说明 HTML 嵌入、API、配置文件和日志场景应该怎样取舍。114 收藏 -
Go json.Decoder 可能预读后续协议数据。本文说明如何复制 Buffered 内容,并用 io.MultiReader 按前缀优先的顺序安全交接给下一层。370 收藏