In Rust, wenn ich eine Schließung als solche definiert kehre zurück:Wie kann eine Rust-Schließung String-Argumente und Rückgabewerte annehmen?
fn closure_thing() (Fn(String) -> String) {
|thing| {
thing[1..4]
}
}
Ich erhalte einen Fehler zu:
= note: `std::ops::Fn(std::string::String) -> std::string::String + 'static` does not have a constant size known at compile-time
= note: the return type of a function must have a statically known size`
Ich habe versucht, Fn (& String) -> & String als auch. Gibt es einen einfachen Weg für eine Schließung, eine Zeichenkette als Argument zu nehmen und eine Zeichenkette zurückzugeben?
Ihre ersten beiden haben auch (potenzielle) Laufzeitkosten, da sie dynamischen Versand beinhalten. AFAIK ist die einzige Lösung, "impl Trait" zu verwenden. – Veedrac
Sie sollten wahrscheinlich erwähnen, dass Ihr erstes Beispiel nicht direkt funktioniert, da die Schließung nicht lange genug dauert (es sei denn, ich vermisse etwas). –
@ErikVesteraas TIL borrowck läuft nach der "Hauptfunktion nicht gefunden", die ein fataler Fehler ist – mcarton