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.