Ich bin ziemlich verwirrt wegen der Fehler dieses einfachen Codes ( Spielplatz ):
%Vor%Dies sind:
%Vor%Ich bin nicht mit diesen Fehlern konfrontiert worden, hat sich irgendetwas in einer neuen Rust-Version geändert? Wie kann ich die Fehler beheben?
Vor langer Zeit, als eine Funktion einen ausgeliehenen Zeiger zurückgegeben hat, hat der Compiler die Eigenschaft 'static
lifetime abgeleitet, so dass fn2
erfolgreich kompiliert wurde. Seither wurde das Lifetime Elision implementiert. Lifetime Elision ist ein Prozess, bei dem der Compiler die Lebensdauer eines Eingabeparameters automatisch mit der Lebensdauer des Ausgabewerts verknüpft, ohne ihn explizit benennen zu müssen.
Zum Beispiel wäre fn1
ohne lebenslange Elision wie folgt geschrieben:
fn2
hat jedoch keine Parameter, die ausgeliehene Zeiger oder Strukturen mit Lebensdauerparametern sind (tatsächlich hat es überhaupt keine Parameter). Sie müssen daher die Lebensdauer explizit angeben. Da Sie ein Zeichenfolgenliteral zurückgeben, ist die korrekte Lebensdauer 'static
(wie vom Compiler vorgeschlagen).
Tags und Links rust