Prozeduraufruf in Arrayfeld erfolgt zweimal
Verfasst: 01.05.2018 14:40
Ich weiß nicht, wie ich es anders beschreiben soll, ich lasse das Snippet einfach mal für sich sprechen ... es ist nicht von erderschütternder Relevanz, aber ich möchte einfach verstehen, warum das so ist:
Ich habe ein dimensioniertes Array und eine Prozedur, welche mir eine zufällige Zahl von 0-9 zurückgibt. Diesen Prozedur rufe ich nun innerhalb eines Arraysfeldes auf, welchem ich einen einfachen Wert zuweise.
Das zweite Mal, zum Vergleich, verändere ich den Wert des Feldes mit Hilfe eines beliebigen Operators.
Bei der einfachen Zuweisung wird die Prozedur anyNumber() nur einmal aufgerufen, soweit so logisch. Bei der Variante mit Operator dagegen doppelt.
Warum ist das so?
Code: Alles auswählen
Procedure anyNumber()
Debug "anyNumber"
ProcedureReturn Random(9)
EndProcedure
Dim field(9)
field(anyNumber()) = 1
Debug ""
field(anyNumber()) +1Das zweite Mal, zum Vergleich, verändere ich den Wert des Feldes mit Hilfe eines beliebigen Operators.
Bei der einfachen Zuweisung wird die Prozedur anyNumber() nur einmal aufgerufen, soweit so logisch. Bei der Variante mit Operator dagegen doppelt.
Warum ist das so?