Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var XORKeySpace = &xorKeySpace{}
XORKeySpace 是一个基于异或操作的键空间实现。 它使用 SHA-256 哈希对标识符进行规范化,并使用异或(XOR)操作计算键之间的距离。
Functions ¶
Types ¶
type Key ¶
type Key struct { // Space 是与此 Key 相关联的 KeySpace。 Space KeySpace // Original 是标识符的原始值。 Original []byte // Bytes 是标识符在 KeySpace 中的新值。 Bytes []byte }
Key 表示 KeySpace 中的标识符。它持有与之关联的 KeySpace 的引用,以及原始标识符和新的 KeySpace 字节。
func SortByDistance ¶
SortByDistance 按照与中心 Key 的距离对 Key 列表进行排序。
参数:
- sp: KeySpace 实例
- center: 作为距离计算参考点的中心 Key
- toSort: 要排序的 Key 列表
返回值:
- []Key: 按距离排序后的 Key 列表
func (Key) Distance ¶
Distance 计算此 Key 到另一个 Key 的距离。
参数:
- k2: 要计算距离的目标 Key
返回值:
- *big.Int: 表示两个 Key 之间距离的大整数
如果两个 Key 不在同一个 KeySpace 中,会触发 panic
type KeySpace ¶
type KeySpace interface { // Key 将标识符转换为此空间中的 Key。 // // 参数: // - []byte: 要转换的标识符字节切片 // // 返回值: // - Key: 转换后的 Key 对象 Key([]byte) Key // Equal 判断在此 KeySpace 中两个 Key 是否相等。 // // 参数: // - Key: 第一个 Key // - Key: 第二个 Key // // 返回值: // - bool: 如果两个 Key 相等则返回 true,否则返回 false Equal(Key, Key) bool // Distance 计算在此 KeySpace 中两个 Key 之间的距离。 // // 参数: // - Key: 第一个 Key // - Key: 第二个 Key // // 返回值: // - *big.Int: 表示两个 Key 之间距离的大整数 Distance(Key, Key) *big.Int // Less 判断第一个 Key 是否小于第二个 Key。 // // 参数: // - Key: 第一个 Key // - Key: 第二个 Key // // 返回值: // - bool: 如果第一个 Key 小于第二个 Key 则返回 true,否则返回 false Less(Key, Key) bool }
KeySpace 是用于在标识符上执行数学运算的接口。每个 KeySpace 都有自己的属性和规则。参见 XorKeySpace。
Click to show internal directories.
Click to hide internal directories.