November 2017
Intermediate to advanced
264 pages
5h 45m
English
All variables in Rust code have a lifetime, which is the area of code in which the variable is defined. Suppose we declare a variable n with the binding let n = 42u32; Such a value is valid from where it is declared to when it is no longer referenced; its lifetime ends there. This is illustrated in the following code snippet:
// see code in Chapter 7/code/lifetimes.rs
fn main() {
let n = 42u32;
let n2 = n; // a copy of the value from n to n2
println!("The value of n2 is {}, the same as n", n2);
let p = life(n);
println!("p is: {}", p); // p is: 42
println!("{}", m); // error: unresolved name `m`.
println!("{}", o); // error: unresolved name `o`.
}
fn life(m: u32) -> u32 {
let o = m;
o
}
The lifetime of n ends when the main() function ...
Read now
Unlock full access