0
0
Rustprogramming~5 mins

Lifetimes in structs in Rust - Cheat Sheet & Quick Revision

Choose your learning style9 modes available
Recall & Review
beginner
What is a lifetime in Rust?
A lifetime in Rust is a way to tell the compiler how long a reference should be valid. It helps prevent dangling references and ensures memory safety.
Click to reveal answer
beginner
Why do structs sometimes need lifetime annotations?
Structs need lifetime annotations when they hold references. This tells Rust how long those references are valid, so the compiler can check safety.
Click to reveal answer
beginner
How do you declare a struct with a lifetime parameter?
You add a lifetime parameter with an apostrophe before the lifetime name, like struct MyStruct<'a> { field: &'a str }. This means the field's reference lives at least as long as 'a.
Click to reveal answer
intermediate
What happens if you omit lifetime annotations on references in structs?
Rust will give a compile error because it can't be sure how long the references live. You must specify lifetimes to avoid dangling references.
Click to reveal answer
intermediate
Explain the difference between &'a T and T in a struct field.
&'a T is a reference with a lifetime 'a, meaning it borrows data that lives at least as long as 'a. T owns the data directly, so no lifetime is needed.
Click to reveal answer
Why do you add a lifetime parameter to a struct in Rust?
ATo allow the struct to own data
BTo make the struct mutable
CTo specify how long references inside the struct are valid
DTo enable multithreading
What does the syntax &'a str mean in a struct field?
AA reference to a string slice valid for lifetime 'a
BAn owned string with lifetime 'a
CA mutable string reference
DA static string
What error occurs if you forget to add lifetime annotations to references in structs?
ACompile error about missing lifetime specifier
BRuntime error
CWarning only, code compiles
DNo error, Rust infers lifetimes automatically
Which of these is a correct way to declare a struct with a lifetime?
Astruct Example { field: &i32 }
Bstruct Example<'a> { field: &'a i32 }
Cstruct Example<'a> { field: i32 }
Dstruct Example { field: &'a i32 }
What does the lifetime parameter 'a guarantee?
AThe reference is mutable
BThe reference is static
CThe data is owned by the struct
DThe reference lives at least as long as 'a
Explain why lifetime annotations are necessary in structs that hold references.
Think about how Rust ensures memory safety with references inside structs.
You got /3 concepts.
    Describe how to declare a struct with a lifetime parameter and a reference field.
    Focus on the syntax for lifetime parameters and reference fields.
    You got /3 concepts.