Возврат нескольких значений в Rust: методы и примеры кода

В Rust вы можете возвращать несколько значений, используя кортеж. Для этого можно использовать несколько методов. Вот несколько примеров:

Метод 1: использование типа возврата кортежа

fn return_tuple() -> (i32, f64, String) {
    // Some computations
    let result1 = 42;
    let result2 = 3.14;
    let result3 = String::from("Hello");
    (result1, result2, result3)
}
fn main() {
    let (value1, value2, value3) = return_tuple();
    println!("Value 1: {}", value1);
    println!("Value 2: {}", value2);
    println!("Value 3: {}", value3);
}

Метод 2: использование структуры

struct MyStruct {
    value1: i32,
    value2: f64,
    value3: String,
}
fn return_struct() -> MyStruct {
    // Some computations
    let result1 = 42;
    let result2 = 3.14;
    let result3 = String::from("Hello");
    MyStruct {
        value1: result1,
        value2: result2,
        value3: result3,
    }
}
fn main() {
    let my_struct = return_struct();
    println!("Value 1: {}", my_struct.value1);
    println!("Value 2: {}", my_struct.value2);
    println!("Value 3: {}", my_struct.value3);
}

Метод 3. Использование ссылок

fn return_references() -> (&'static str, &'static str) {
    let result1 = "Hello";
    let result2 = "World";
    (result1, result2)
}
fn main() {
    let (value1, value2) = return_references();
    println!("Value 1: {}", value1);
    println!("Value 2: {}", value2);
}