Avatar ·

如何在 Rust 中对向量排序:升序、降序和自定义逻辑

你好!我刚开始学习 Rust,遇到了一个问题:不知道如何正确地对向量进行排序。我习惯用 Python,可以直接调用 `sorted()`,但这里完全不同。 假设我有一个数字向量:`let mut numbers = vec![5, 2, 8, 1, 9];`。我想按升序排序,得到 `[1, 2, 5, 8, 9]`。之后,可能需要按降序排序。我试过写类似 `numbers.sort()` 的代码,它似乎能工作,但我不确定这是否正确。 另外,我有一个字符串向量:`let mut words = vec!["banana", "apple", "cherry", "date"];`。如何按字母顺序排序?如果我想按字符串长度排序(例如,从最短到最长)呢? 最后,我有一个结构体 `Person`,包含字段 `name` 和 `age`。我创建了一个 `Vec` 向量。如何先按年龄排序,再按名字排序?在 Python 中,我会使用 `lambda` 或 `itemgetter`,但在 Rust 中该怎么做? 请举例说明。