Ich möchte eine Frage zu mehreren Rückgabewerten stellen, warum dieses Konstrukt in Programmiersprachen (konzeptionelle und / oder technische Schwierigkeiten) nicht vorzuziehen ist. Ich habe etwas über Stapelrahmen gehört und wie sie Speicher für Rückgabewerte und variable Rückgabewerte reservieren, könnte dies problematisch machen, aber wenn jemand dies besser erklären könnte, wäre dies sehr dankbar.
In konktanetativen Sprachen (wie FORTH) ist es üblich und sehr nützlich, mehrere Rückgabewerte von einer Funktion zu haben, und ich stelle mir vor, dass so etwas in Java / C-ähnlichen Sprachen ebenfalls nützlich wäre (ein sehr einfaches Beispiel):
x, y = multRet(5);
multret(int x) {
return x+1;
return x+2;
exit;
}
Zur Verdeutlichung: Ich frage nicht, wie mehrere Werte zurückgegeben werden sollen (dies ist eine bekannte Frage mit bekannten Antworten), aber ich möchte eine Klarstellung darüber erhalten, warum diese Praxis in Programmiersprachen nicht üblich ist.
i=0; while (true) { return i; i+=1 }
?). Beachten Sie, dass einige funktionale Sprachen Tupel anbieten, eine bessere Alternative.
return
Anweisung zurückgegeben wird. Wenn Sie Funktionen / Lambdas zurückgeben, haben Sie möglicherweise einen Punkt.