Referenzen
Normalerweise werden Argumente von Funktionen als Werte übergeben.
Das heißt, wenn man z.B. Schreibe den Text t.
aufruft, wird eine Kopie der Variable t erstellt und der Funktion übergeben. Die Funktion kann t
also nicht verändern.
In DDP können Funktionen nun aber auch sog. Referenzen als Parameter-Typen angeben. Das sieht so aus:
Die Funktion foo mit dem Parameter param vom Typ Text Referenz, gibt nichts zurück, macht: Speichere "neu!" in param. Und kann so benutzt werden: "Verändere <t>"
Und man kann die Funktion nun so aufrufen:
Der Text t ist "alt". Schreibe t. [Zeigt "alt" in der Konsole] Verändere t. Schreibe t. [Zeigt "neu!" in der Konsole]
Wie man sieht, nehmen Referenz-Parameter Variablen als Argumente. Wenn man ihnen einen Wert, z.B. ein Literal, übergeben würde, gäbe es einen Fehler:
Verändere "Fehler". [Kompilierfehler: foo hat eine Variable erwartet]
Man kann aus jedem Typnamen einen Referenz-Typ machen, indem man “Referenz” an den Typnamen anhängt und ihn entsprechend dekliniert.
Aus Zahlen Liste
wird also Zahlen Listen Referenz
, aus Wahrheitswert
wird Wahrheitswert Referenz
, aus Zahl
wird Zahlen Referenz
, etc..
Normale Variablen können keine Referenz-Typen sein, nur Funktions-Parameter.