Go教程技术文章
-
Go Lip Gloss 里可以用一个基础 Style 保存颜色、边框和间距,再用 Inherit 让标题、正文和警告样式只补齐未设置的规则。本文对比赋值复制与继承的区别,给出 v2 写法、旧代码风险和回归检查清单。324 收藏 -
Go 基准测试中,如果目标函数的返回值完全没有用途,编译器可能把无副作用计算删掉。Go 1.24+ 优先使用精确的 b.Loop() 循环;兼容旧式 b.N 时用包级结果汇总变量保住被测结果,并把初始化和计时边界分开。324 收藏 -
用 Go net.LookupSRV 读取 SRV 服务发现记录,拆解 service、proto、cname、Target、Port、Priority、Weight 的关系,并说明如何安全组合拨号地址。324 收藏 -
Go slog 的 Handler 会过滤未启用的日志级别,但函数参数已经提前求值。本文用 logger.Enabled 在昂贵字段构造前短路,再比较格式化辅助函数与 LogValuer 的延迟计算边界。324 收藏 -
Go http.ServeFileFS 用 fs.FS 提供文件或目录响应,适合把 embed.FS 等抽象文件系统接到 HTTP 服务。本文从旧的 ServeFile 路径写法迁移到 fs.Sub 与 ServeFileFS,说明 name、io.Seeker、用户输入和 index.html 重定向等边界。324 收藏 -
Go 1.24 引入的 os.Root 可以把文件操作限制在指定目录树内。本文用文件创建场景说明 Root.OpenFile 的相对路径、创建标志、符号链接和错误检查边界。323 收藏 -
Go exec.CommandContext 取消后,不能只看 ctx.Done。本文用 Wait 确认子进程退出,并区分超时、主动取消、非零退出和 WaitDelay 边界。323 收藏 -
Golang · Go教程 | 1个月前 | 连接池 · Go教程 · net/http · HTTP客户端 · Go net/http Client Go Transport拆分 Go多上游HTTP客户端 Go连接池隔离 Go HTTP代理配置
Go net/http 访问多个上游时,不要直接改全局 DefaultTransport。本文用公共基线加独立 Transport 的方式拆分代理、TLS、连接池和超时边界。323 收藏 -
用 Go crypto/rand 生成固定长度随机字节,再以 RawURLEncoding 转成 URL 安全令牌;同时说明 TTL、一次性消费和 Go 1.24 rand.Text 的适用边界。323 收藏 -
说明 Go crypto/subtle.XORBytes 处理等长 []byte 的调用方式,解释返回值、目标长度、切片重叠和不等长输入的边界,并给出生产代码中的长度检查方案。323 收藏 -
Go 的 netip.AddrPort 用结构化 IP 与 uint16 端口保存地址,IPv6 文本则统一采用 [地址]:端口。本文说明 AddrPortFrom、ParseAddrPort、String、zone 和端口边界,避免日志与连接参数产生歧义。323 收藏 -
Go sqlmock 的动态时间参数不适合做精确值比较。本文实现 Argument 匹配器,只约束 time.Time 类型,同时保留 SQL 和固定参数的精确断言。323 收藏 -
Go HTTP Server 默认开启 Keep-Alive。本文用 SetKeepAlivesEnabled(false) 关闭服务端连接复用,并解释 HTTP/1 空闲连接、HTTP/2 边界、优雅停机与客户端 Transport 配置的区别。323 收藏 -
Go slices.Values 提供按顺序产出元素值的迭代器。本文结合完整示例说明版本要求、break、重复遍历与共享切片边界,并给出普通 range 的回退取舍。323 收藏 -
Go 泛型排序的关键不是把所有类型都塞进 any,而是用 type set 明确比较能力。本文从 Price、ProductName 等业务命名类型出发,说明 ~ 底层类型约束、< 与 > 的适用边界,并给出标量排序与结构体字段排序的选择方法。323 收藏