w3resource

Rust Function: Take Tuple Ownership, Return element

Rust Ownership, Borrowing, and Lifetimes: Exercise-5 with Solution

Write a Rust function that takes ownership of a tuple and returns one of its elements.

Sample Solution:

Rust Code:

// Define a function named 'get_tuple_element' that takes ownership of a tuple and returns one of its elements
fn get_tuple_element(tuple: (i32, f64, char)) -> char {
    let (_, _, c) = tuple; // Destructure the tuple to extract the third element (char)
    c // Return the third element of the tuple
} // Here 'tuple' goes out of scope and is dropped. Ownership is transferred to the function when called.

fn main() {
    let my_tuple = (10, 3.14, 'A'); // Define a tuple

    // Call the 'get_tuple_element' function and pass the ownership of 'my_tuple' to it
    let element = get_tuple_element(my_tuple);

    // Error! 'my_tuple' is no longer accessible here because ownership was transferred to the function
    // println!("Attempt to use 'my_tuple': {:?}", my_tuple);

    // Print the element returned by the function
    println!("Third element of the tuple: {}", element);
}

Output:

Third element of the tuple: A

Explanation:

Here is a brief explanation of the above Rust code:

  • fn get_tuple_element(tuple: (i32, f64, char)) -> char { ... }: This is a function named get_tuple_element that takes ownership of a tuple (i32, f64, char) as input and returns one of its elements (char). The parameter "tuple" is of type (i32, f64, char), indicating ownership transfer.
  • Inside the function:
    • We destructure the tuple using pattern matching to extract the third element (char).
    • We return the third element of the tuple.
  • In the main function,
    • Define a tuple named 'my_tuple'.
    • Then call the "get_tuple_element()" function and pass the ownership of 'my_tuple' to it. Ownership of 'my_tuple' is transferred to the function, and 'my_tuple' goes out of scope after the function call.
    • Attempting to use 'my_tuple' after passing ownership to the function will result in a compilation error, as ownership has been moved.
    • Finally we print the element returned by the function.

Rust Code Editor:

Previous: Rust Function: Borrow Vector, Get first element.
Next: Rust Function: Calculate Sum of Borrowed integers.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.