Unary ++ - Operator in Delphi

8

Ich vermute, dass die Antwort nein ist, aber gibt es eine Entsprechung zu dem C ++ unären Pre- und Postfix-Inkrementierungsoperator "++". Zum Beispiel.

%Vor%

Ich kenne den Inc (und Dec) -Operator in Delphi, aber Sie können ihn nicht an eine Funktion übergeben wie in

%Vor%

Zusätzlich zum Kompilierungsfehler scheint es kein unterschiedliches Pre- und Postfix-Inkrement zu geben. Es ist kein großes Problem, Code wie folgt zu schreiben:

%Vor%

aber die ++ (und -) Operatoren in C ++ sind ein großartiges Feature.

    
AlainD 13.03.2015, 11:50
quelle

2 Antworten

9

Es gibt keine in Delphi integrierte äquivalente Funktionalität.

Sie könnten darüber nachdenken, Funktionen wie folgt zu schreiben:

%Vor%

Sie würden wahrscheinlich solche Funktionen inline machen wollen. Es ist zwar offen, wie nützlich solche Funktionen sind.

Ich persönlich finde, dass diese Operatoren manchmal in C und C ++ nützlich sind, aber der Fall für sie ist nicht überwältigend. Sicher für Anfänger, sie stellen eine riesige Falle dar, in die man fallen kann, wie man an dem stetigen Strom von Fragen erkennen kann, die hier nach Ausdrücken wie ++i++ + i++ fragen.

FWIW, Ihre Beschreibung der Operatoren ist ungenau. Du hast gesagt:

%Vor%

Das ist nicht korrekt. Die Variable test wird inkrementiert, bevor SomeFunc aufgerufen wird, weil ein Funktionsaufruf ein Sequenzpunkt ist. % Co_de% hat also den Wert test , wenn er von 2 aus beobachtet wird. Aber der Wert, der an SomeFunc übergeben wird, ist SomeFunc . Dieses Programm:

%Vor%

Ausgaben

%Vor%     
David Heffernan 13.03.2015, 11:51
quelle
0

Wenn Sie nur den inkrementierten Wert an die Funktion übergeben möchten, können Sie Succ , d. h. SomeFunc(Succ(Test)); , verwenden, aber Test wird danach nicht erhöht.

    
Hans 13.03.2015 13:14
quelle

Tags und Links