📅  最后修改于: 2023-12-03 15:34:46.720000             🧑  作者: Mango
在Rust中交换两个值可以使用多种方法,包括使用中间变量、使用元组、使用引用和使用泛型。 以下是这些方法的示例代码。
fn main() {
let mut a = 1;
let mut b = 2;
let temp = a;
a = b;
b = temp;
println!("a: {}, b: {}", a, b);
}
输出:
a: 2, b: 1
fn main() {
let mut a = 1;
let mut b = 2;
(a, b) = (b, a);
println!("a: {}, b: {}", a, b);
}
输出:
a: 2, b: 1
使用引用需要在交换前加上&mut
。
fn swap(a: &mut i32, b: &mut i32) {
let temp = *a;
*a = *b;
*b = temp;
}
fn main() {
let mut a = 1;
let mut b = 2;
swap(&mut a, &mut b);
println!("a: {}, b: {}", a, b);
}
输出:
a: 2, b: 1
使用泛型可以交换不同类型的值。
fn swap<T>(a: &mut T, b: &mut T) {
let temp = std::mem::replace(a, std::mem::replace(b, Default::default()));
*a = temp;
}
fn main() {
let mut a = 1;
let mut b = "hello";
swap(&mut a, &mut b);
println!("a: {}, b: {}", a, b);
}
输出:
a: hello, b: 1
以上是在Rust中交换两个值的方法,可以根据需要选择合适的方法。