Rust编程:闭包与可变字符串的使用
1. 闭包的需求与定义
在Rust中,对数组进行升序排序可以使用如下方式:
let mut arr = [4, 8, 1, 10, 0, 45, 12, 7];
arr.sort();
print!("{:?}", arr);
这段代码会输出 [0, 1, 4, 7, 8, 10, 12, 45] 。
但如果要进行降序排序或使用其他排序标准,就需要使用 sort_by 函数,并传入一个比较函数的引用。例如:
let mut arr = [4, 8, 1, 10, 0, 45, 12, 7];
use std::cmp::Ordering;
fn desc(a: &i32, b: &i32) -> Ordering {
if a < b { Ordering::Greater }
else if a > b { Ordering::Less }
else { Ordering::Equal }
}
arr.sort_by(desc);
print!("{:?}", arr);
此代码会输出 [45, 12, 10, 8, 7, 4, 1, 0] 。
这里的 desc 函数返回的 Ordering 类型定义如下:
超级会员免费看
订阅专栏 解锁全文
42

被折叠的 条评论
为什么被折叠?



