Go语言技术文章
-
Go bloom/v3 用 NewWithEstimates 按预计元素数量和假阳性率创建 BloomFilter。本文说明 n、fp、m、k 的关系、容量预算、查询结果边界,以及并发写入和持久化时的处理方式。227 收藏 -
Go bitset 的 Complement 计算的是当前 BitSet 长度以内的局部补集,不是无限整数域的补集。本文用 New、Set、Len 和 Count 说明如何明确边界并避免误读结果。169 收藏 -
Go bitset 的 NextSet 返回索引和布尔值两个结果。本文说明 found 的真实含义、正确遍历写法、空集边界,以及 Count 与 Len 的区别。355 收藏 -
说明Go bitset中Length概念对应Len方法,比较逻辑位长度与Count置位数量,通过小集合状态推导解释扩展、清位、空集合及性能指标的差别。384 收藏 -
Go bitset 提供 SymmetricDifference 与 InPlaceSymmetricDifference。本文用两组编号标记说明对称差、原地修改、结果遍历以及高编号稀疏数据的边界。212 收藏 -
介绍Go bitset通过MarshalBinary和UnmarshalBinary编码恢复位集合,解释逻辑长度、内部字数组和字节序的区别,并提供流接口与错误处理示例。421 收藏 -
Go bitset 枚举置位索引时,Go 1.23 及以上优先使用 EachSet 配合 range,旧版本使用 NextSet 循环;本文还说明 NextSetMany、Count、Len、空集合和并发访问边界。319 收藏 -
Go roaring 默认使用无符号32位整数,roaring64 提供64位扩展。本文从编号范围、跨语言格式、序列化和接口边界比较两者,给出实际选型规则。200 收藏 -
Go roaring 的 Rank 用于统计小于等于目标值的元素数量,Select 用于按 0 起始序号取出有序集合中的元素。本文用 Go 示例说明两者的下标约定、分页用途和空集合、越界、并发访问边界。337 收藏 -
Go roaring 的 Bitmap.And/Or 会把结果写回当前对象,而 roaring.And/Or 返回新的位图。本文用集合示例、共享指针风险和回归清单说明如何选择,避免重构时误改输入集合。317 收藏 -
Go roaring 可以用 WriteTo 和 ReadFrom 在 io.Writer/io.Reader 之间传输 Roaring 位图,也可以用 MarshalBinary 和 UnmarshalBinary 处理完整字节切片。本文说明两种入口、错误处理、容量估算与 32/64 位兼容边界。401 收藏 -
以Go roaring v1.9.4演示AddRange加入连续整数,说明半开区间、重叠去重、uint32最大值端点与闭区间转换,并提供外部范围检查封装及小集合实验。211 收藏 -
Go roaring 计算压缩位图交集时,先区分 And 是否会修改接收者,再按需求选择 Clone+And、AndCardinality 或 Intersects。本文用用户集合示例说明结果、数量、真假三种输出的工程取舍。469 收藏 -
解释Go snowflake修改Epoch后旧编号时间偏移的原因,区分Node生成状态与全局解码配置,并给出显式历史格式解码器和保留纪元、分版本迁移的方案。135 收藏 -
Go snowflake 的 NodeBits 与 StepBits 共享 22 位预算。本文用节点数量和单节点毫秒级突发量拆解容量分配,并说明自定义位数的初始化顺序、节点编号和时钟注意事项。172 收藏