Go教程技术文章
-
Go bitset 提供 SymmetricDifference 与 InPlaceSymmetricDifference。本文用两组编号标记说明对称差、原地修改、结果遍历以及高编号稀疏数据的边界。212 收藏 -
介绍Go bitset通过MarshalBinary和UnmarshalBinary编码恢复位集合,解释逻辑长度、内部字数组和字节序的区别,并提供流接口与错误处理示例。421 收藏 -
Go bitset 枚举置位索引时,Go 1.23 及以上优先使用 EachSet 配合 range,旧版本使用 NextSet 循环;本文还说明 NextSetMany、Count、Len、空集合和并发访问边界。319 收藏 -
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 生成的编号可以恢复出节点号和同一毫秒内的序列值。本文从字符串与 int64 两种输入开始,说明 Node、Step、默认位布局、自定义位宽以及弃用 API 的维护边界。200 收藏 -
说明 snowflake.ID 如何用 Base58 生成可传输文本,再用 ParseBase58 还原编号,并梳理字符表、错误处理与排序语义边界。443 收藏 -
基于Go snowflake v0.3.0,介绍默认节点范围、环境变量配置、共享Node生成编号及扩容边界,区分理论序列容量与实测吞吐,并说明编号存储和性能记录方法。216 收藏 -
Go sonyflake 通过 Settings.StartTime 设置 ID 时间字段的坐标原点。本文给出 v2 的配置写法,并按起始时间、机器号、生成结果三层排查创建失败和取不到 ID 的原因。398 收藏 -
围绕 sonyflake/v2 的 Settings 配置机器编号,说明 MachineID、CheckMachineID、位布局和扩容时的唯一性边界,帮助 Go 服务稳定生成分布式整数 ID。464 收藏 -
Go sonyflake 默认把编号拆成 39 位时间、8 位序列号和 16 位机器 ID。本文先用 v2 的 Decompose 与 ToTime 读取结构化字段,再用右移和掩码解释固定布局的手工拆解,并说明自定义位宽后为什么不能继续套用默认掩码。322 收藏 -
Go ksuid 可以生成带时间成分的 KSUID,并把它编码成 27 字符文本。本文用最小代码说明 NewRandom、String、Parse、Time、Timestamp 和 Payload 的使用边界。118 收藏 -
Go KSUID的完整二进制为20字节,区别于27字符Base62文本。本文给出固定记录保存与恢复函数,说明SQL默认值接口、短写、截断记录和旧数据迁移回退的处理方式。266 收藏 -
Go ksuid 解析 KSUID 后,Time() 适合得到可读的生成时间,Timestamp() 保留特殊纪元下的原始整数。本文说明两者的区别、错误处理和排序边界。491 收藏