Durée de vie
Code qui ne compile pas:
fn main() {
let r;
{
let x = 5;
r = &x;
}
println!("r: {r}");
}
Exemple de situation qui peut être résolue par une spécification de durée de vie:
fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
if x.len() > y.len() {
x
} else {
y
}
}
fn main() {
let string1 = String::from("abcd");
let string2 = "xyz";
let result = longest(string1.as_str(), string2);
println!("The longest string is {result}");
}