Go语言技术文章
-
Go Lip Gloss 的 Width 参与块布局和文本换行,MaxWidth 则在渲染完成后逐行截断。本文结合边框、内边距和 Inline,说明两者的渲染时机与选择方法。429 收藏 -
Go io.SectionReader.Outer 可以取回创建读取窗口时的底层 ReaderAt、起始偏移和长度。本文结合 Read、ReadAt、Seek 与 Size 说明它的职责边界和版本兼容取舍。429 收藏 -
Go Transport 连接池复用失效时,不要先盲目调大连接数。本文从复用前提、Response.Body、httptrace、连接池参数和服务端边界五个方面给出排查与配置方案。429 收藏 -
Go go-colorful的RGB、Lab和CIEDE2000距离采用不同颜色空间与公式。本文演示同一对颜色的比较,说明0到1输入、结果缩放、最近色排序及阈值不能混用的原因。429 收藏 -
iter.Pull 不负责管理调用方的缓冲区。本文用 dst[:0] 保留 slice 容量,演示如何逐项拉取、提前停止和处理切片别名,并说明何时直接使用 slices.AppendSeq。429 收藏 -
按 QueryContext、Next、Scan、Err 和 Close 定位 sql.Rows 使用问题,说明空结果、NULL 扫描、提前停止及连接池生命周期,并给出完整消费函数。429 收藏 -
Go types.Interface.Empty 判断空接口的整体类型集合语义,不能用显式方法数量代替。本文比较嵌入方法、类型项和 comparable 约束,并解释空接口与空类型集合的区别。429 收藏 -
讲清 tls.Config 的 RootCAs、ServerName 与 HTTPS 连接地址的职责区别,演示保留系统根证书并追加私有 CA 的写法,以及证书池为空、PEM 解析失败和域名不匹配时的处理边界。429 收藏 -
用 Go netip.ParsePrefix 解析 CIDR,再通过 Masked().Addr() 提取规范化网段起始地址,并厘清 Prefix.Addr、Addr.Prefix 与 PrefixFrom 的主机位边界。429 收藏 -
把环境变量留在 go generate 的父进程中,由生成器通过 os.LookupEnv 读取;再用默认值、白名单和稳定输出约束生成结果,避免敏感值进入指令、日志或生成源码。429 收藏 -
Go flag.FlagSet.Lookup 按名称查找已注册参数,找到返回 *flag.Flag,找不到返回 nil。本文说明如何判定注册关系,并区分默认值、解析后的当前值与用户是否显式设置。429 收藏 -
使用 go/types 做静态分析或代码生成时,可以用 NewInterfaceType 组合显式方法和嵌入接口,再通过 Complete 得到完整的方法集。429 收藏 -
Go 1.26 提供了实验性的 goroutineleak pprof 画像,可在构建时启用后观察疑似泄漏的 goroutine。本文从一个等待链问题切入,说明如何开启、采样、区分真实泄漏与暂时阻塞,并给出回归核对边界。428 收藏 -
CloseIdleConnections 只处理 Transport 中已完成请求、当前处于 keep-alive 空闲状态的连接,不会中断正在使用的连接。本文用可复现代码拆开它与 MaxIdleConnsPerHost、IdleConnTimeout 的边界。428 收藏 -
Go io.Pipe 的写入端提前关闭时,读取端可能看到 io.EOF 或具体错误。本文用最小示例梳理 Close、CloseWithError、Read 返回值和排查顺序。428 收藏