Go教程技术文章
-
sync.Map.Range 适合做并发遍历,但不能当作一致性快照。本文用一个在线会话统计场景拆开 Range 的遍历语义、并发写入影响、O(N) 成本,并给出快照统计与可控停止的实现边界。298 收藏 -
Go 1.25 为 hash 包补充 XOF 接口。本文用 SHAKE 示例比较固定长度摘要与可扩展输出,说明 hash.Hash、hash.XOF、Read 和 Reset 的选择边界。298 收藏 -
使用 golang.org/x/net/html 解析网页中的 a[href],再用 net/url 按页面基准地址补全相对链接,并说明片段、特殊 scheme 与外链控制的处理边界。298 收藏 -
Go 的 http.Client 默认不会替你保存登录后的 Cookie。为 Client 注入 net/http/cookiejar 的 Jar,并复用同一个 Client,登录响应里的 Set-Cookie 才能在后续匹配请求中自动带回。298 收藏 -
json.Decoder.InputOffset 给出当前解码边界;语法或类型错误则应优先使用对应错误的 Offset。文章提供安全截取附近原始字节、处理流式输入和 UTF-8 字节位置的完整方法。298 收藏 -
用两个职责清晰的 Colly Collector 分离列表页和详情页回调:列表只发现链接,详情独立解析,并说明 Clone 共享资源、相对 URL、错误处理和异步等待的边界。298 收藏 -
用 Go net/http/httptrace 观察 DNSStart、DNSDone 与 GotConn 回调,区分真正进入 DNS 阶段、DNS 失败和连接复用导致的无 DNS 回调。298 收藏 -
本文说明如何用 Go httptrace.TLSHandshakeDone 记录 TLS 握手成功或失败,区分连接复用、握手状态与 HTTP 请求结果,并处理回调并发和敏感日志边界。298 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · https · TLS · Go教程 · tls Go 证书 crypto/x509 Certificate VerifyHostname 主机名校验
Go 的 Certificate.VerifyHostname 专门判断证书是否匹配给定主机名:DNS 名称看 DNSNames,IP 看 IPAddresses,通配符只能作为完整左侧标签,旧 Common Name 不再参与判断。本文说明它和证书链验证的边界,并给出可复用的错误处理写法。298 收藏 -
Go 的 time.Duration 底层是纳秒数,但配置通常需要 500ms、2s 这样的可读文本。本文区分 String 与 ParseDuration 的职责,并用一个轻量 DurationText 适配文本配置、错误处理和 JSON 字符串字段。298 收藏 -
Go io.ReadAll 会持续读取到 EOF 并返回完整字节切片,面对请求体或文件输入时不能把内存上限交给输入方。本文用 io.LimitReader、io.Copy 和分块读取给出可控方案,并说明触及上限后的错误处理。298 收藏 -
用 Go slices.Chunk 把大切片按固定大小切成批次,核对尾块、空输入、返回切片容量和只读语义,给出适合批量写入与分页处理的选择边界。297 收藏 -
Go 的 time.Ticker 停止后不会关闭 ticker.C,后台消费 goroutine 仍可能残留。本文用停止信号、context 和 WaitGroup 拆开 ticker 停止、循环退出与任务收尾,说明何时使用 NewTicker、Tick 和 Reset。297 收藏 -
处理键值文本时,strings.Cut 适合围绕第一个分隔符取左右两段,strings.Split 适合获取全部片段。本文用 Go 示例说明两者的返回语义、空字段、缺少分隔符和空分隔符边界,并给出选择方法。297 收藏 -
用 Go 标准库统一处理 JSON 未知字段、大整数与金额精度、RFC3339 时间,并给出可复用的解码入口和边界检查。297 收藏