Wie funktioniert das Lifetime bei konstanten Strings / String-Literalen?
Ich lese die Tutorial auf der offiziellen Website und ich habe einige Fragen zur Lebensdauer von konstanten Strings / String-Literalen.
Ich erhalte eine Fehlermeldung, wenn ich den folgenden Code schreibe:
fn get_str() -> &str {
"Hello World"
}
Error
error[E0106]: missing lifetime specifier
--> src/main.rs:1:17
|
1 | fn get_str() -> &str {
| ^ expected lifetime parameter
|
= help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
= help: consider giving it a 'static lifetime
Es ist jedoch in Ordnung, wenn ich einen Parameter hinzufüge:
fn get_str(s: &str) -> &str {
"Hello World"
}
Warum funktioniert das? Wie funktioniert"Hello World"
Aus dem Parameter ausleihens
, obwohl es nichts mit @ zu tun hs
?