myCustomer["customerName"]
Sie können diese Klammernsyntax auch mit einer Variable des Typs ANY oder mit einem Wörterverzeichnis verwenden.
Der Zugriff auf Ausdrücke, die eine Punktsyntax verwenden (wie z. B. myRecord.myField), kann ebenfalls dynamisch sein. Die folgende Regel gibt vor, wie sich EGL verhält: Wenn der ganz links befindliche Abschnitt eines Feldzugriffsausdrucks (eine Reihe von Namen, die durch Punkte getrennt sind) ein dynamischer Typ oder ein anderer Ausdruck mit dem Typ ANY ist, verwendet EGL den dynamischen Zugriff für alle Felder, die folgen. In der Praxis bedeutet dies, dass der Ausdruck mit dem Namen eines Wörterverzeichnisses, einem Datensatz fester Länge oder einer Variable des Typs ANY beginnen muss, damit EGL den dynamischen Zugriff für Felder verwenden kann, die auf den Ausdruck folgen.
Der dynamische Zugriff ist überall dort zulässig, wo eine Variable des Typs ANY zulässig ist. Und überall dort, wo dynamischer Zugriff besteht, ist der Typ ANY.
Anweisungen, die den Datentyp der Operanden benötigen, um den richtigen Code zu generieren (z. B. E/A-Anweisungen), können Ausdrücke mit dynamischem Zugriff nicht verwenden.
// Definition eines Wörterverzeichnisses mit dem Namen 'point'
point Dictionary{x=1, y=1};
// Zugriff auf Wert bei Schlüssel "x" von 'point'
anInt = point["x"];
// Zugriff auf 'point' mit normaler Datenzugriffssyntax
anInt = point.x ;
// Zugriff auf X mithilfe von Variable mit Wert "x"
str String = "x";
anInt = point[ str ];