Go教程技术文章
-
使用 golang.org/x/net/html 解析网页中的 a[href],再用 net/url 按页面基准地址补全相对链接,并说明片段、特殊 scheme 与外链控制的处理边界。298 收藏 -
Go 的 http.Client 默认不会替你保存登录后的 Cookie。为 Client 注入 net/http/cookiejar 的 Jar,并复用同一个 Client,登录响应里的 Set-Cookie 才能在后续匹配请求中自动带回。298 收藏 -
Go 的 time.Ticker 停止后不会关闭 ticker.C,后台消费 goroutine 仍可能残留。本文用停止信号、context 和 WaitGroup 拆开 ticker 停止、循环退出与任务收尾,说明何时使用 NewTicker、Tick 和 Reset。297 收藏 -
处理键值文本时,strings.Cut 适合围绕第一个分隔符取左右两段,strings.Split 适合获取全部片段。本文用 Go 示例说明两者的返回语义、空字段、缺少分隔符和空分隔符边界,并给出选择方法。297 收藏 -
用一个可运行的 Go 客户端示例验证 NewRequestWithContext 的构造顺序、取消传播和 nil context 边界。296 收藏 -
用 Go 的 url.Values、Has、Get 和 ParseQuery 区分查询参数的缺失、空值、重复值与编码错误,并说明 Add、Set、Encode 的写回规则。296 收藏 -
用 Go time.LoadLocation 集中管理 IANA 时区,区分 Parse 与 ParseInLocation,统一 UTC 存储和 Time.In 展示,并说明夏令时与 tzdata 缺失时的处理边界。296 收藏 -
用 Go archive/tar 逐项读取归档,在写盘前校验条目路径,拒绝目录穿越、链接和特殊文件,并限制单项与总展开资源。296 收藏 -
Go big.Float 比较结果不稳定,通常是精度、舍入模式或类型转换顺序不一致。本文用 Int、Rat 和 Float 的边界示例,说明如何设置二进制精度、检查 Acc,并用 Cmp 完成可靠比较。295 收藏 -
Go 的 net.Dialer 通过 LocalAddr 指定出站连接的本地 IP 和端口,通过 Timeout 限制拨号等待;本文说明 tcp 地址类型匹配、context 截止时间、连接读写 deadline 以及常见绑定失败的排查方法。295 收藏 -
用 Go io.Pipe 把压缩写入端和上传读取端连接起来,理解无内部缓冲带来的自然背压,并处理成功关闭、生产失败和上传失败的资源收口。295 收藏 -
Go 的 testing.T.Context 返回一个会在清理函数执行前取消的上下文。把它传给数据库、HTTP 或后台 goroutine,可以让测试超时和资源清理形成可观察的闭环。本文用一个可运行的测试示例说明取消链、Cleanup 顺序和失败定位边界。294 收藏 -
用一个泛型集合示例说明 Go iter.Seq 的 yield 回调约定、range 提前停止、go.mod 语言版本和 single-use 迭代器边界。294 收藏 -
用 archive/tar.Reader 顺序读取 tar 包时,目录项不应被当成文件内容处理。本文从 Reader.Next 的自动丢弃规则出发,给出跳过目录、限制目标路径、区分 io.EOF 与 ErrInsecurePath 的可验证写法。293 收藏 -
Go http.CookieJar 中 Cookie 已收到却无法发送时,按接收主机、Domain、HostOnly、公共后缀、IP 和目标 URL 逐层排查域匹配,快速区分主机 Cookie 与域 Cookie。293 收藏