Hieronder volgt een instructie die een taak beschrijft, gekoppeld aan een input die verdere context biedt. Schrijf een antwoord dat het verzoek op de juiste manier afvult.

### Instructie:
Ik heb Rust nu een paar weken leren kennen en heb mijn hand al geprobeerd bij het fizzbuzz probleem. Code: fn fizzbuzz<'a>(n: usize) -> &'a str { match (n % 3, n % 5) { (0, 0) => "fizzbuzz," (0, _) => "fizz" (_, 0) => "buzz," _ => n.to_string().as_str(), } } Om een of andere reden krijg ik een compilerfout die ik moeilijk te begrijpen heb. Fout: fout[E0515]: kan geen waarde teruggeven die betrekking heeft op tijdelijke waarde --> src\main.rs:36:2

###

### Antwoord:
Ik heb Rust nu een paar weken leren kennen en heb mijn hand al geprobeerd bij het fizzbuzz probleem. Code: fn fizzbuzz<'a>(n: usize) -> &'a str { match (n % 3, n % 5) { (0, 0) => "fizzbuzz," (0, _) => "fizz" (_, 0) => "buzz," _ => n.to_string().as_str(), } } Om een of andere reden krijg ik een compilerfout die ik moeilijk te begrijpen heb. Fout: fout[E0515]: kan geen waarde teruggeven die betrekking heeft op tijdelijke waarde --> src\main.rs:36:2
Ja, zeker! Het probleem dat je tegenkomt is omdat de stringletters "fizzbuzz," "fizz" en "buzz" tijdelijke waarden zijn, en je probeert een verwijzing naar hen terug te geven, wat niet toegestaan is omdat ze aan het einde van de scope zullen worden gedropt, en de geretourneerde referentie zou bungelen zijn. Je kunt deze fout herstellen door &'static str terug te geven in plaats van &str. &'static str verwijst naar stringliterals, die een'statische levensduur hebben, wat betekent dat ze duren voor de duur van het programma. Hier is een bijgewerkte versie van je code: fn fizzbuzz(n: usize) -> &'static str { match (n % 3, n % 5) {0, 0) => "fizzbuzz" (0, _) => "fizz" (_, 0) => "buzz" (_> let s => {string(); Box:leak(s.into_box_str} } } } } } Opmerking dat de laatste arm een string teruggeeft aan een {static is gemaakt
Hieronder volgt een instructie die een taak beschrijft, gekoppeld aan een input die verdere context biedt. Schrijf een antwoord dat het verzoek op de juiste manier afvult.

### Instructie:
Ik heb Rust nu een paar weken leren kennen en heb mijn hand al geprobeerd bij het fizzbuzz probleem. Code: fn fizzbuzz<'a>(n: usize) -> &'a str { match (n % 3, n % 5) { (0, 0) => "fizzbuzz," (0, _) => "fizz" (_, 0) => "buzz," _ => n.to_string().as_str(), } } Om een of andere reden krijg ik een compilerfout die ik moeilijk te begrijpen heb. Fout: fout[E0515]: kan geen waarde teruggeven die betrekking heeft op tijdelijke waarde --> src\main.rs:36:2

###

### Antwoord:
Ja, zeker! Het probleem dat je tegenkomt is omdat de stringletters "fizzbuzz," "fizz" en "buzz" tijdelijke waarden zijn, en je probeert een verwijzing naar hen terug te geven, wat niet toegestaan is omdat ze aan het einde van de scope zullen worden gedropt, en de geretourneerde referentie zou bungelen zijn. Je kunt deze fout herstellen door &'static str terug te geven in plaats van &str. &'static str verwijst naar stringliterals, die een'statische levensduur hebben, wat betekent dat ze duren voor de duur van het programma. Hier is een bijgewerkte versie van je code: fn fizzbuzz(n: usize) -> &'static str { match (n % 3, n % 5) {0, 0) => "fizzbuzz" (0, _) => "fizz" (_, 0) => "buzz" (_> let s => {string(); Box:leak(s.into_box_str} } } } } } Opmerking dat de laatste arm een string teruggeeft aan een {static is gemaakt