finish until lifetimes

This commit is contained in:
Samuele Iacoponi
2026-02-27 17:15:07 +01:00
parent b1b81f7e07
commit 8c99d4187d
9 changed files with 148 additions and 23 deletions

View File

@@ -4,7 +4,7 @@
// not own their own data. What if their owner goes out of scope?
// TODO: Fix the compiler error by updating the function signature.
fn longest(x: &str, y: &str) -> &str {
fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
if x.len() > y.len() {
x
} else {

View File

@@ -15,6 +15,6 @@ fn main() {
{
let string2 = String::from("xyz");
result = longest(&string1, &string2);
println!("The longest string is '{result}'");
}
println!("The longest string is '{result}'");
}

View File

@@ -1,11 +1,12 @@
// Lifetimes are also needed when structs hold references.
// TODO: Fix the compiler errors about the struct.
struct Book {
author: &str,
title: &str,
struct Book<'a> {
author: &'a str,
title: &'a str,
}
// Will the strings pointed to by book still be valid?
fn main() {
let book = Book {
author: "George Orwell",