Go问答技术文章
-
对比Sonyflake整数、8字节编码与UUID的16字节及标准文本表示,给出Go往返转换函数,并说明数据库驱动、JSON数值精度和不同标识类型的接入边界。277 收藏 -
Go beep 的采样率转换用于让源流适配播放设备,修改播放速度则通过 ResampleRatio 或 SetRatio 改变流的消费密度。本文对比 Format、Resample、ResampleRatio 和 SetRatio 的职责与选择边界。482 收藏 -
llrb 依赖 Less 定义的稳定排序关系。通过值快照任务索引说明原地改键为何影响检索,以及旧键删除、新键插入、辅助表和并发更新的责任。288 收藏 -
GoLLRB 的遍历方法不是简单地把升序改成降序:AscendGreaterOrEqual 包含 pivot,AscendLessThan 排除 pivot,AscendRange 使用大于等于下界且小于上界的闭开区间,DescendLessOrEqual 则按降序包含 pivot。本文用一组可复用的判断表说明边界和回调停止语义。383 收藏 -
Go llrb 的 ReplaceOrInsert 依据 Item.Less 的排序等价判断是否替换,不比较结构体整体值或指针地址。本文用业务键示例说明返回值、Less 契约与可变字段边界。412 收藏 -
Go rtreego 的空间维数不是可忽略的元数据:构造 Rect 时维数不一致会返回 DimError,距离查询遇到不一致维数可能触发 panic。本文按 API 边界说明如何统一检查 Rtree、Spatial、Point 与 Rect 的维度。424 收藏 -
rtreego 的 SearchIntersect 比较的是 Spatial 返回的包围矩形,不是真实圆形或多边形。本文用圆形示例说明候选召回与精确几何过滤的职责边界,以及边界接触和对象更新的处理方式。274 收藏 -
说明 Go bloom/v3 的 Merge 为什么要求两个 Bloom 过滤器使用相同的 m 和 k,并给出分片创建、错误处理、容量规划与并发边界示例。252 收藏 -
Go bloom 的容量参数对应预期插入量,不是可以无限增长的硬盘空间。本文解释容量不足后误判率为什么升高,如何理解 m、k、n 的关系,并给出容量预留、分段过滤器、重建与回源降级的工程取舍。109 收藏 -
解释Go Bloom过滤器命中只表示可能存在的原因,提供命中后查询精确map的示例,并说明否定结果的同步前提、容量取舍与误判指标的解释边界。386 收藏 -
Go bitset 的 Complement 计算的是当前 BitSet 长度以内的局部补集,不是无限整数域的补集。本文用 New、Set、Len 和 Count 说明如何明确边界并避免误读结果。169 收藏 -
Go bitset 的 NextSet 返回索引和布尔值两个结果。本文说明 found 的真实含义、正确遍历写法、空集边界,以及 Count 与 Len 的区别。355 收藏 -
说明Go bitset中Length概念对应Len方法,比较逻辑位长度与Count置位数量,通过小集合状态推导解释扩展、清位、空集合及性能指标的差别。384 收藏 -
Go roaring 默认使用无符号32位整数,roaring64 提供64位扩展。本文从编号范围、跨语言格式、序列化和接口边界比较两者,给出实际选型规则。200 收藏 -
Go roaring 的 Rank 用于统计小于等于目标值的元素数量,Select 用于按 0 起始序号取出有序集合中的元素。本文用 Go 示例说明两者的下标约定、分页用途和空集合、越界、并发访问边界。337 收藏