Go教程技术文章
-
处理键值文本时,strings.Cut 适合围绕第一个分隔符取左右两段,strings.Split 适合获取全部片段。本文用 Go 示例说明两者的返回语义、空字段、缺少分隔符和空分隔符边界,并给出选择方法。297 收藏 -
Go 的 net.Dialer 通过 LocalAddr 指定出站连接的本地 IP 和端口,通过 Timeout 限制拨号等待;本文说明 tcp 地址类型匹配、context 截止时间、连接读写 deadline 以及常见绑定失败的排查方法。295 收藏 -
Go http.CookieJar 中 Cookie 已收到却无法发送时,按接收主机、Domain、HostOnly、公共后缀、IP 和目标 URL 逐层排查域匹配,快速区分主机 Cookie 与域 Cookie。293 收藏 -
Go strconv.AppendInt 可以把 int64 按指定进制直接追加到 []byte 日志缓冲区。本文说明返回值、base 参数、负数边界、容量复用和基准测试的正确用法,避免把追加结果丢失或把示意数据当成实测结论。293 收藏 -
context.AfterFunc 的 stop 函数只负责阻止尚未启动的回调,不保证等待。本文用 sync.Once 和 done 通道封装主动 Close 与 Context 取消,避免资源清理重复执行。292 收藏 -
Go filepath.Rel 遇到绝对路径和相对路径混用时,先用 filepath.Abs 统一计算基准,再处理跨根目录、../ 越界、符号链接和 URL 路径等边界。288 收藏 -
围绕 Go testing.B.RunParallel 说明 b.N、GOMAXPROCS、SetParallelism 与墙上时间的关系,给出在并行基准结束后用 b.N 除以 b.Elapsed 估算 ops/s 的写法,并梳理 CPU、锁和外部依赖造成的吞吐边界。284 收藏 -
用 Go encoding/xml 的结构体标签把重复 XML 子节点映射到切片,并处理嵌套路径、缺失节点与重复解码残留。279 收藏 -
Go 多账号 HTTP 调用要把每个登录身份绑定到独立的 cookiejar.Jar 和 http.Client。本文说明如何复用同一会话、共享 Transport、重置 CookieJar,并用安全的 Cookie 名称检查排查登录态串号。278 收藏 -
用一个可复用的 Go HTTP 客户端设置 MaxConnsPerHost,区分总连接上限与空闲连接上限,并掌握按 host:port 判断和验收配置的方法。277 收藏 -
Go vendor 模式下,不能只看 go.mod 猜依赖版本。本文用 vendor/modules.txt、go list -mod=vendor 和 go version -m 建立从源码目录到最终二进制的核对路径。276 收藏 -
Go fs.Sub 出错时,先区分路径格式错误和子目录访问错误:用 fs.ValidPath 检查 dir,再用 fs.Stat 确认目标存在且是目录,并通过 PathError 与 errors.Is 定位真正失败的操作。276 收藏 -
用 ctx.Err() 判断取消状态,用 context.Cause(ctx) 读取业务原因,掌握 WithCancelCause、WithTimeoutCause 以及父子 Context 的第一次取消规则。276 收藏 -
strings.Builder 能减少循环拼接中的中间字符串复制,但 Grow、String、Reset 和按值传递都有明确边界。本文用最小示例说明如何预估容量、保持单一所有者,并用 Cap、Len 和基准测试判断优化是否成立。274 收藏 -
Go compress/gzip 出错时要分开检查 Write、gzip.Writer.Close、底层 Close 和读取是否到达 io.EOF。本文用写入与读取示例说明流关闭顺序、GZIP 尾部校验和最小错误定位方法。272 收藏