Recall & Review
beginner
What is a lifetime in Rust?
A lifetime is a way Rust keeps track of how long references are valid to prevent dangling pointers and ensure memory safety.
Click to reveal answer
intermediate
Why do functions sometimes need explicit lifetime annotations?
Because Rust needs help to understand how the lifetimes of input references relate to the output references, ensuring safe borrowing.
Click to reveal answer
beginner
What does the syntax
&'a str mean in a function parameter?It means the function takes a string slice reference that lives at least as long as the lifetime 'a, which is a named lifetime parameter.
Click to reveal answer
intermediate
Explain this function signature:
fn longest<'a>(x: &'a str, y: &'a str) -> &'a strIt means the function takes two string slices that live at least as long as 'a and returns a string slice that also lives at least as long as 'a, tying input and output lifetimes together.
Click to reveal answer
intermediate
What happens if you omit lifetime annotations in a function with multiple references?
Rust may give a compile error because it can't infer how the lifetimes relate, so you need to add explicit lifetime annotations to clarify.
Click to reveal answer
What is the main purpose of lifetimes in Rust functions?
✗ Incorrect
Lifetimes ensure references are valid only as long as the data they refer to, preventing unsafe memory access.
In the function signature
fn foo<'a>(x: &'a i32) -> &'a i32, what does 'a represent?✗ Incorrect
The
'a is a lifetime parameter that tells Rust the output reference lives at least as long as the input reference.If a function returns a reference to one of its input parameters, what must you do?
✗ Incorrect
Rust needs explicit lifetime annotations to know which input lifetime the output reference is tied to.
What error might you see if you forget lifetime annotations in a function with multiple references?
✗ Incorrect
Rust will complain about missing lifetime specifiers because it can't infer how lifetimes relate.
Which of these is a valid lifetime annotation in a function signature?
✗ Incorrect
The correct syntax places the lifetime parameter before the function parameters and uses it with references.
Explain why Rust requires lifetime annotations in some function signatures and how they help with memory safety.
Think about how Rust prevents dangling references.
You got /3 concepts.
Describe the meaning of this function signature:
fn longest<'a>(x: &'a str, y: &'a str) -> &'a str.Focus on how the lifetime 'a connects inputs and output.
You got /3 concepts.