Schlüsselwort "this"
Das Schlüsselwort 'this' ist ein vordefiniertes Qualifikationsmerkmal, das auf den
Container (den Hauptlogikabschnitt) verweist, in dem sich die aktuelle Funktion befindet. Betrachten Sie die folgende Situation: Ein Programm
deklariert eine globale Variable namens 'runningTotal' und ruft anschließend über die Funktion
'main()' die Funktion 'getCustomer()' auf.
Diese Funktion deklariert ihre eigene lokale Variable namens 'runningTotal'.
Dir ursprüngliche Variable 'runningTotal' befindet sich theoretisch im Geltungsbereich der Funktion, aber der nicht qualifizierte Name
verweist nun auf die lokale Version. Um auf die ursprüngliche Variable zuzugreifen, verwenden Sie
das Qualifikationsmerkmal 'this':
runningTotal = this.runningTotal + myCustomer.customerBalance;
In diesem Fall wird
die lokale Variable runningTotal mit dem Wert der Variablen runningTotal aus main() initialisiert. Anschließend
wird der Saldo des aktuellen Kunden zur lokalen Summe addiert.In seltenen Fällen können Sie das Schlüsselwort 'this' verwenden, um das Verhalten eines SET-Werteblocks in einer Zuordnungsanweisung zu überschreiben. In diesem Fall legt 'this' als Geltungsbereich die Deklaration fest, in der sich der SET-Werteblock befindet. Details hierzu finden Sie unter SET-Werteblöcke.
Beispiel
Betrachten Sie folgendes Szenario: Sie haben ein Programm (myProgramA), das eine Funktion aufruft (main()), die wiederum 'myFunctionB()'
aufruft. Nehmen Sie an, dass jeder dieser Abschnitte eine Variable namens 'varX' deklariert:
program myProgramA type BasicProgram
varX STRING = "program";
function main()
varX STRING = "main";
myFunctionB();
end
function myFunctionB()
varX STRING = "Function B";
writeStdErr(this.varX);
end
end
Die Variable this.varX zeigt den Wert "program" auf der Konsole an, da es sich bei dem Programm um den Hauptlogikabschnitt handelt, in dem sich 'myFunctionB()' befindet .