Menu
Coddy logo textTech

Mehrere Rückgabewerte

Teil des Abschnitts Fundamentals der Rust-Journey von Coddy — Lektion 52 von 75.

In Rust kann eine Funktion mehrere Werte zurückgeben, indem sie ein Tupel als Rückgabetyp verwendet. Ein Tupel ist eine Gruppe verschiedener Werte, die zu einer Einheit zusammengefasst sind.

Zum Beispiel:

fn get_coordinates() -> (i32, i32) {
    let x = 10;
    let y = 20;
    (x, y) // Gibt ein Tupel zurück
}

Und so wird die Funktion aufgerufen:

let (x, y) = get_coordinates();
// Das Tupel destrukturieren
// in separate Variablen

println!("{}, {}", x, y);

Sie können so viele Werte zurückgeben, wie Sie benötigen, indem Sie dem Tupel weitere Elemente hinzufügen. Zum Beispiel:

fn get_details() -> (String, i32, f64) {
    let name = String::from("Alice");
    let age = 30;
    let score = 95.5;
    (name, age, score)
    // Gibt ein Tupel mit drei Werten zurück
}

Und so wird die Funktion aufgerufen:

let (name, age, score) = get_details();
println!("{}, {}, {}", name, age, score);
challenge icon

Aufgabe

Einfach

Erstellen Sie eine Funktion namens get_user_info, die ein Tuple zurückgibt, das den Namen, das Alter und die E-Mail-Adresse eines Benutzers enthält. Die Funktion sollte die folgende Signatur haben:

fn get_user_info() -> (String, i32, String)

Erstellen Sie innerhalb der Funktion die folgenden Variablen:

  • name: ein String, initialisiert mit "Bob"
  • age: ein i32, initialisiert mit 25
  • email: ein String, initialisiert mit "bob@example.com"

Geben Sie diese drei Werte als Tuple zurück.

Rufen Sie in der main-Funktion get_user_info auf und destrukturieren Sie das zurückgegebene Tuple in separate Variablen namens name, age und email. Geben Sie diese Werte anschließend mit println! im folgenden Format auf der Konsole aus:

Name: [name], Age: [age], Email: [email]

Spickzettel

Funktionen können mehrere Werte zurückgeben, indem sie Tupel als Rückgabetyp verwenden:

fn get_coordinates() -> (i32, i32) {
    let x = 10;
    let y = 20;
    (x, y) // Return a tuple
}

Rufen Sie die Funktion auf und destrukturieren Sie das Tupel in separate Variablen:

let (x, y) = get_coordinates();
println!("{}, {}", x, y);

Sie können mehrere Werte unterschiedlicher Typen zurückgeben:

fn get_details() -> (String, i32, f64) {
    let name = String::from("Alice");
    let age = 30;
    let score = 95.5;
    (name, age, score)
}
let (name, age, score) = get_details();
println!("{}, {}, {}", name, age, score);

Probier es selbst

fn get_user_info() -> (String, i32, String) {
    // Erstelle hier Variablen für Name, Alter und E-Mail
    
    
    // Gib das Tupel zurück
    
}

fn main() {
    // Rufe get_user_info auf und destrukturiere das zurückgegebene Tupel
    
    
    // Gib die Werte aus
    
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Fundamentals