Go语言技术文章
-
以临时文件辅助函数和并行子测试说明testing.TB.Cleanup的资源归属、后登记先清理规则及与defer、TempDir的区别,避免提前关闭与重复释放。501 收藏 -
解释 Go os.File.ReadAt 到文件末尾返回部分数据和 io.EOF 的原因,梳理 n、len(b)、off 的判断边界与定长读取处理方式。501 收藏 -
Go 的 sync.RWMutex 允许多个读者并发,但写锁一旦排队,新读者也会等待。本文通过原创实验和指标拆分,分析写锁等待过久的常见竞争来源,并给出可落地的缩短临界区方法。501 收藏 -
Go generate 未执行预期指令时,区分注释未识别、包未选中、工具失败和输出目录偏移。通过包内生成器示例说明指令格式、工作目录、参数解析与产物责任。501 收藏 -
Go crypto/mldsa 可以用 Options.Context 区分同一把密钥下的不同业务签名。本文从业务串域的故障现象切入,说明 Context 的长度边界、签名与验签必须保持一致的原因,以及如何用版本化上下文避免跨业务误验签。500 收藏 -
Go 的 iter.Pull 可以把 iter.Seq 这种推送式迭代器转换为 next 和 stop 两个主动拉取函数。本文用一个小型筛选场景说明 ok 结束信号、提前停止和 defer stop 的正确边界。500 收藏 -
Go collate.Numeric 可让名称中的连续数字按数值排序。本文给出记录排序代码,说明语言选项、相等项处理及分页范围,并区分自然数字排序与金额、版本号解析。500 收藏 -
Gonum quad 处理无限区间时,通常应保留 rule=nil,让 Fixed 自动把无限边界变换到有限区间;只有被积函数明确带有 e^(-x^2) 权重时,才考虑 Hermite。本文按区间、权函数和收敛性拆解规则选择。500 收藏 -
介绍 gojq RunWithContext 的查询取消方法,提供超时与迭代错误处理示例,区分停止等待和停止计算,说明扩展调用、结果限制与部分结果的边界。500 收藏 -
Go encoding/base64 中,RawURLEncoding 同时使用 URL 安全字母表并省略等号填充。本文对比三种编码器,给出编码、解码和兼容带填充输入的写法,并说明跨语言互操作时的边界。499 收藏 -
Go x/text/cases 的 NoLower 会关闭标题式大小写中非首字母的小写化,因此输入中的后续字母可以保留。本文对比默认 Title、NoLower、语言标签和 Caser 复用边界。499 收藏 -
Go bytes.IndexByte 接收一个字节切片和单个 byte,返回该字节第一次出现的索引;没有匹配时返回 -1。本文结合分隔记录、索引 0、空数据和 UTF-8 多字节字符说明正确用法。497 收藏 -
Go 的 http.Client 会在重定向时复制初始请求头,但对 Authorization 等敏感头只允许同域或受控子域继续继承。本文结合 CheckRedirect 说明如何收紧跨主机、HTTPS 降级和凭据审计边界。497 收藏 -
使用 google/uuid.NullUUID 读写可空数据库字段,说明 Valid、SQL NULL 与零 UUID 的区别,给出扫描和更新函数,并解释空字符串、错误处理和接口更新三态。497 收藏 -
用 Gonum 的 WeightedDirectedGraph 保存正权边,再通过 DijkstraFrom 和 Shortest.To 查询单源最短路径、累计权重,并说明不可达节点、负权边和 DijkstraFromTo 的选择边界。497 收藏