下面是我在Rust中实现的一个工作选择排序,以及一个使用&mut [i32]的简单打印函数
fn print_nums(nums: &mut [i32]) {
println!("{:?}", nums);
}
fn selection_sort(nums: &mut [i32]) {
let len = nums.len();
let mut mindex;
for i in 0..len {
mindex = i;
for j in (i + 1)..len {
if nums[j] < nums[mindex] { mindex = j; }
}
nums.swap(i, mindex);
}
}
fn main() {
let mut xs: [i32; 5] = [1, 2, 3, 4, 5];
selection_sort(&mut xs);
print_nums(&mut xs);
}&mut [i32]对selection_sort来说似乎是合理的,因为它修改了数组,但似乎不适合用于print_nums:我只是想不出另一种方法来匹配这些类型。:P
发布于 2015-05-09 07:19:27
您可以只使用&[u32]。不需要添加mut修饰符,因为您没有修改打印方法中的数据。
fn print_nums(nums: &[i32]) {
println!("{:?}", nums);
}
print_nums(&xs);https://stackoverflow.com/questions/30137160
复制相似问题