EGL kann - wie viele andere Programmiersprachen auch - Variablen desselben Typs in Feldgruppen zusammenfassen. In diesem Abschnitt werden die Grundlagen der Verwendung von Feldgruppen in EGL behandelt.
myInts int[] = [1,2,3,4,5];
In diesem Fall besteht die Feldgruppe aus einer Serie von fünf ganzzahligen Variablen. In EGL beginnt die Nummerierung von Feldgruppen bei 1. Die Elemente in dieser Feldgruppe sind somit von 1 bis 5 nummeriert.myInts[1] = 5+5;
myInts[2] = 16;
myInts[3] = myInts[1] + myInts[2];
myStrings string[2];
myStrings {"Hello", "Goodbye"};
Bitte beachten Sie, dass diese Syntax geschweifte Klammern ({) und keine Gleichheitszeichen (=) verwendet. Es handelt sich hierbei nicht um eine Zuweisungsanweisung, sondern um eine Methode, bei der die Werte der Feldgruppe so zugewiesen werden, als ob es sich bei den Elementen um ihre Eigenschaften handeln würde. Dieses Verfahren bietet zur Laufzeit ein besseres Leistungsverhalten als die andere Methode, bei der ein Feldgruppenliteral in die Feldgruppe aufgenommen wird.
Diese Methode funktioniert allerdings nur, wenn die Feldgruppe genügend Elemente besitzt, um die neuen, in geschweiften Klammern angegebenen Werte zu akzeptieren. EGL fügt nicht automatisch weitere Elemente hinzu. Aus diesem Grund müssen Sie eine Anfangslänge für die Feldgruppe angeben oder andernfalls Elemente zu ihr hinzufügen, bevor Sie mit einem Wertfestlegungsblock Werte zu Elementen zuweisen können.
myBigInts bigint[];
myBigInts = [10,40];
Dieses Verfahren ist etwas langsamer als die Methode mit der Wertfestlegung, da der generierte Code zwei Feldgruppen erstellen muss, nämlich eine Feldgruppe für die Variable und eine Feldgruppe für das Literal.myStringsInit string[] {"Hello", "Goodbye"};
myBigIntsInit bigint[] = [10, 40];
myDecimals decimal(10,2)[3] {55.43, 22.12, 4.34, CurrencySymbol = "$"};
Wenn Sie die Anfangswerte unter Verwendung des Feldgruppenliterals angeben, können Sie Eigenschaften wie gewohnt mit Wertfestlegungsblock festlegen:myBools boolean[3]{MaxSize = 5} = [true, false, true];
fiveInts int[5];
SysLib.writeStderr(fiveInts[1]); //Writes "0"
Es ist sinnvoll, bei der Erstellung einer Feldgruppe eine Anfangslänge anzugeben, damit sie von EGL initialisieren werden kann. Später können Sie jederzeit Elemente mit Feldgruppenfunktionen
wie appendElement und removeElement hinzufügen oder entfernen.nullArray int[];
nullArray[2] = 5; //NullValueException!
nullArray.appendElement(5); //NullValueException!
nullArray {1,2,3}; //NullValueException!
Sie müssen stattdessen zunächst die Feldgruppe mit einem Feldgruppenliteral initialisieren:nullArray2 int[];
nullArray2 = [1,2,3];
nullArray2.appendElement(4);
emptyArray int[]{};
emptyArray.appendElement(5);
Im vorstehenden Beispiel ist der Wertfestlegungsblock leer. Sie können mit einem Wertfestlegungsblock nicht mehr Elemente zu einer Feldgruppe zuweisen, als gegenwärtig in der Feldgruppe vorhanden sind. Diese Feldgruppe enthält keine Elemente. Daher müssen Sie einen Wertfestlegungsblock mit Nullwerten verwenden.smallIntArray int[2];
smallIntArray = [1,2,3,4,5];
smallStrArray string[2];
smallStrArray {"ab", "cd", "ef", "gh"};
//IndexOutOfBoundsException! Array has only 2 elements!
Weitere detaillierte Informationen zu Feldgruppen enthält der Abschnitt über Feldgruppen in der EGL-Sprachreferenz.