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 函数仅在后续的
超级会员免费看
订阅专栏 解锁全文
45

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



