Go教程技术文章
-
讲清 Go os.CreateTemp 的目录与 pattern 规则,演示如何按业务前缀创建临时文件,并用 Close、Remove 和 defer 覆盖异常路径清理。117 收藏 -
Go 服务调用外部 HTTP 接口时,如果没有设置超时,慢接口可能让请求一直等待。本文从复现现象开始,逐步定位原因,并给出 Client.Timeout 与 context 截止时间两种可靠写法。115 收藏 -
Go 的 TCP KeepAlive 不是应用层心跳。本文从 TCPConn 的传统 API 讲到 Go 1.23 的 KeepAliveConfig,说明 Idle、Interval、Count 怎么设置,以及 Dialer、Listener 和跨平台使用时的边界。115 收藏 -
Go 的 url.Values 会把同名查询参数保存为字符串切片。本文用一个筛选标签示例说明 Query、Get、直接索引、Add、Set 和 Encode 的区别。115 收藏 -
Go image/draw 裁固定比例缩略图的关键,是先按目标比例计算源图裁切矩形,再用 draw.Draw 对齐源点复制到固定画布,而不是直接拉伸原图。本文给出中心裁切、尺寸限制和异常排查方法。115 收藏 -
Go 的网络连接是字节流,一次 Read 只保证返回当前可用数据。本文用固定长度包头示例说明短读原因、io.ReadFull 的正确边界,以及 EOF、超时和变长消息的处理方式。115 收藏 -
Go 测试里临时目录、环境变量和共享资源容易在失败路径上残留。本文用 testing.T.Cleanup 拆解注册时机、后进先出顺序、子测试继承和并行测试边界,给出可运行的测试写法与验收清单。114 收藏 -
text/template 默认会把缺失 map 键渲染成,missingkey=zero 返回元素零值,missingkey=error 则在模板运行阶段停止。本文用可运行示例梳理三种行为与上线选择。 114 收藏 -
掌握 Go sort.Search 的单调谓词、空切片与 len(data) 尾部返回值,正确处理升序、降序、重复值和插入位置。114 收藏 -
Golang · Go教程 | 2个月前 | 并发 · 闭包 · for range · 迁移 · Go教程 · Go 1.22 · Goroutine 闭包 循环变量 Go教程 Go 1.22 for range
Go 1.22 调整了 for 循环变量的作用域,新模块里每轮循环会有自己的变量副本,能减少闭包和 goroutine 误读最后一轮值的问题。升级时要先看 go.mod、跑测试,再处理仍需要旧语义的特殊代码。113 收藏 -
Go 定时任务并不只是每隔几分钟调用一次函数。本文比较 time.Ticker 与 cron 调度器在固定间隔、整点触发、错过补偿、任务重叠和停机收尾上的差异,并给出按业务约束选型的最小实现。113 收藏 -
Golang · Go教程 | 2星期前 | 日志 · 标准库 · time · go · Go时间格式化 encoding.TextAppender Go time.Time.AppendText RFC3339Nano
Go 1.24 为 time.Time 增加 AppendText,可把 RFC 3339 纳秒时间直接追加到已有字节切片。本文对比 Format 与 MarshalText,说明错误返回、时区偏移和日志字段复用的边界。113 收藏 -
用 go test 生成 Go 测试覆盖率文件,再用 go tool cover 按函数和语句定位未覆盖代码,并说明多包与集成测试的 covdata 边界。113 收藏 -
Go 的 flag.String 适合单值参数;需要重复传入 -tag api -tag worker 时,可以定义实现 flag.Value 的字符串切片类型,在 Set 中 append 并通过 flag.Var 注册。本文说明重复参数、默认值、空值、错误和位置参数 Args 的边界。113 收藏 -
time.After 适合一次性等待,但把它放进长循环后,定时器生命周期和退出路径就需要重新审视。本文用可运行的 Go 代码拆开一次性等待、可停止计时器与循环复用的边界。112 收藏