📜  rust 交换两个值 - Rust (1)

📅  最后修改于: 2023-12-03 15:34:46.720000             🧑  作者: Mango

Rust交换两个值

在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中交换两个值的方法,可以根据需要选择合适的方法。