Rückgabe einer Schließung von einer Funktion

Hinweis: Diese Frage wurde vor Rost die erste stabile Version. Es wurden viele Veränderungen da und die syntax verwendet, in der Funktion ist auch nicht mehr gültig. Noch, Shepmaster die Antwort ist ausgezeichnet und macht diese Frage lohnt sich.


Schließlich ohne Verpackung Verschlüsse gelandet, so bin ich mit Ihnen zu Experimentieren, um zu sehen, was Sie tun können.

Habe ich diese einfache Funktion:

fn make_adder(a: int, b: int) -> || -> int {
    || a + b
}

Allerdings bekomme ich eine missing lifetime specifier [E0106] Fehler. Ich habe versucht, dieses Problem beheben, indem ändern Sie den Rückgabetyp zu ||: 'static -> int, aber dann bekomme ich eine andere Fehlermeldung cannot infer an appropriate lifetime due to conflicting requirements.

Wenn ich das richtig verstehe, ist der Verschluss ohne Verpackung, so dass es besitzt a und b. Es scheint sehr seltsam für mich, die es braucht, ein Leben lang. Wie kann ich dieses Problem beheben?

InformationsquelleAutor aochagavia | 2014-08-22
Schreibe einen Kommentar