Rust 程序设计语言 简体中文版 1.85.0一个 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 属性对它们从低到高排 ]; list.sort_by_key(|r| r.width); println!("{list:#?}"); } 示例 13-7:使用 sort_by_key 对长方形按宽度排序 代码输出: $ cargo run Compiling rectangles v0.1.0 (file:///projects/rectangles) Finished `dev`0 码力 | 562 页 | 3.23 MB | 28 天前3
共 1 条
- 1













