Rust 程序设计语言 简体中文版 1.85.0DoS)攻击。然而这并不是可用的最快的算法,不过为了更高的 安全性值得付出一些性能的代价。如果性能监测显示此哈希函数非常慢,以致于你无法接受, 你可以指定一个不同的 hasher 来切换为其它函数。hasher 是一个实现了 BuildHasher trait 的类型。第十章会讨论 trait 和如何实现它们。你并不需要从头开始实现你自己的 hasher; crates.io 有其他人分享的实现了许多常用哈希算法的 hasher 一个 trait。下一部分会讲到 trait。不过简单 来说,这个错误表明 largest 的函数体不能适用于 T 的所有可能的类型。因为在函数体需要 比较 T 类型的值,不过它只能用于我们知道如何排序的类型。为了开启比较功能,标准库中定 义的 std::cmp::PartialOrd trait 可以实现类型的比较功能(查看附录 C 获取该 trait 的更多信 息)。依照帮助说明中的建议,我们限制 sort_by_key 使用 FnMut 而不是 FnOnce 作为 trait bound。这个闭包以一个 slice 中当前被考虑的元素的引用作为参数,并返回一个可以排序的 K 类型的值。当你想按照 slice 中每个元素的某个属性进行排序时,这个函数非常有用。在示例 13-7 中,我们有一个 Rectangle 实例的列表,并使用 sort_by_key 按 Rectangle 的 width 属性对它们从低到高排0 码力 | 562 页 | 3.23 MB | 22 天前3
共 1 条
- 1













