Hat Rost haben die Unterstützung für Funktionen, die mehrere Werte zurückgeben?
Nicht Rost haben die native Unterstützung für Funktionen, die mehrere Werte zurückgeben wie Gehen?
func addsub(x, y int) (int, int) {
return x + y, x - y
}
Scheint es, dass wir ein Tupel zu simulieren. Rosetta Code einführt, wie man mehrere Werte zurückgeben, die in verschiedenen Sprachen, aber ich sah nicht Rosten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese funktioniert bei mir:
Es ist im Grunde das gleiche wie in Gehen, aber die Klammern sind erforderlich.
return
- Anweisung.)In Rust können Sie wieder ein Tupel mit mehr als einen Wert:
Einer Sprache zurückgeben, die mehr als ein Wert ist wohl emuliert dieses mit einem Tupel oder einer anderen Datenstruktur, wie in den meisten Aufrufkonventionen der Rückgabewert ist in nur ein register.
Kann nicht sagen, zu Gehen, aber es gibt hohe Chancen, die Sie nur nachahmen, mehrere Werte innerhalb eines Tupels und compile-Zeit, zwingt Sie zu verwalten gibt.
Sehe ich keine problem mit Rost dies zu tun, da dies ist, wie OCaml oder Haskell (und andere) zu verwalten und durchzusetzen, die Art der überprüfung in der return-Werte (oder Tupel), so dass die Chancen etwas schlecht geht, sind gering. Der häufigste Weg, um zu verwalten die Rückgabewerte sind die Dekonstruktion der Tupel, die in zwei oder mehr Bindungen (
let (a, b) = tuple_2();
).Nur meine zwei Cent, fühlen Sie sich frei, mich zu korrigieren.
let (a, b) = tuple_2();
In Rust, die Sie nicht verwenden, die zurück Stichwort:
Hier ist ein Beispiel zeigt, wie Sie leicht ordnen Sie die return-Tupel getrennten Variablen.