Rust Function: Borrow Vector, Get first element
Write a Rust function that borrows a vector and returns the first element.
Sample Solution:
Rust Code:
// Define a function named 'get_first_element' that borrows a vector and returns the first element
fn get_first_element(v: &[i32]) -> Option<&i32> {
v.first() // Return an Option containing a reference to the first element of the vector, or None if the vector is empty
}
fn main() {
let my_vector = vec![1, 2, 3, 4, 5]; // Define a vector
// Call the 'get_first_element' function and pass a reference to 'my_vector' to borrow it
match get_first_element(&my_vector) {
Some(first_element) => {
println!("First element of the vector: {}", first_element);
}
None => {
println!("The vector is empty.");
}
}
// 'my_vector' is still accessible here because we only borrowed it
println!("Used 'my_vector' after borrowing: {:?}", my_vector);
}
Output:
First element of the vector: 1 Used 'my_vector' after borrowing: [1, 2, 3, 4, 5]
Explanation:
Here is a brief explanation of the above Rust code:
- fn get_first_element(v: &[i32]) -> Option<&i32> { ... }: This is a function named get_first_element that borrows a slice of a vector (&[i32]) and returns an Option<&i32>. The function returns 'Some' containing a reference to the first element of the vector if it exists, or 'None' if the vector is empty. The parameter 'v' is of type &[i32], indicating borrowing.
- Inside the function:
- We use the "first()" method to get an 'Option' containing a reference to the first element of the vector, or 'None' if the vector is empty.
- In the main function,
- We define a vector named 'my_vector'.
- We then call the "get_first_element()" function and pass a reference to 'my_vector' (&my_vector) to borrow it.
- We match on the result:
- If 'Some', we print the value of the first element.
- If 'None', we print a message indicating that the vector is empty.
- 'my_vector' remains accessible after borrowing because we only borrowed it and didn't transfer ownership.
Rust Code Editor:
Previous: Rust Function: Getting Vector length.
Next: Rust Function: Take Tuple Ownership, Return element.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics