Befehle im Kapitel Collections erstellen und arbeiten mit Collections.
Eine Collection ist eine Sammlung von Werten unterschiedlicher Typen (Text, Zahl, Objekt, Boolean, Collection oder Null). Zum Verwalten von Collection Variablen wird Objektnotation benötigt (siehe Objektnotation verwenden). Weitere Informationen zu 4D Collections finden Sie auf der Seite RELATE MANY unter .
Um auf ein Element der Collection zuzugreifen, müssen Sie die Elementnummer in eckigen Klammern übergeben:
collectionName[expression]
Sie können jeden gültigen 4D Ausdruck übergeben, der in Ausdruck eine positive Ganzzahl zurückgibt. Beispiele:
myCollection[5]
myCollection[$var]
Hinweis: Beachten Sie, dass Elemente in Collections ab 0 gezählt werden.
Über Objektnotation können Sie einem Element der Collection einen Wert zuweisen:
myCol[10]:="My new element"
Ist die Elementnummer höher als das letzte vorhandene Element der Collection, wird die Collection automatisch angepasst und alle dazwischenliegenden neue Elemente erhalten den Wert null:
Sie können zwei Arten von Collections erstellen:
- regular (non-shared) Collections mit dem Befehl New collection.
Diese Collections unterstützen zahlreiche Datentypen, inkl. Bilder und Zeiger. Sie lassen sich ohne eine spezifische Zugriffskontrolle bearbeiten. - shared Collections mit dem Befehl New shared collection.
Diese Collections lassen sich zwischen Prozessen teilen, inkl. preemptive Threads. Der Zugriff auf diese Collections wird über Use...End use Strukturen gesteuert. Weitere Informationen dazu finden Sie auf der Seite Shared Objects und Shared Collections.
Referenzen auf 4D Collection können spezifische Methoden, genannt member methods, nutzen. Sie lassen sich über Objektnotation (siehe unter Objektnotation verwenden) auf Collection Referenzen mit folgender Syntax verwenden:
{$result:=}myCollection.method( {params} )
Beachten Sie, dass eine Methode auch ohne definierte Parameter in runden Klammern stehen muss, sonst wird ein Syntaxfehler erzeugt.
Zum Beispiel:
$newCol:=$col.copy()
$col.push(10;100)
Einige Methoden geben nach Änderung die ursprüngliche Collection zurück, so dass die Aufrufe in einer Sequenz ablaufen können:
Warnung: Beim Einsatz von Collection Methoden müssen Sie für Eigenschaften ECMA Script konforme Pfade verwenden. Sie können also nicht ".", "[ ]", oder Leerzeichen verwenden. Gemäß der Beschreibung im Abschnitt Identifier für Objekteigenschaft werden Eigenschaftennamen wie $o["My.special.property"] zwar unterstützt, sie sind jedoch nicht mit Methoden verwendbar:
$vmin:=$col.min("My.special.property")
$vmin:=$col.min(["My.special.property"])
Einige Collection Methoden akzeptieren als Parameter einen EigenschaftsPfad. Dieser Parameter steht für:
- Name der Objekteigenschaft, z.B. "lastName"
- oder Pfad der Objekteigenschaft, z.B. eine Sequenz von Untereigenschaften, durch Punkte getrennt, z.B. "employee.children.firstName".
Deshalb werden, wenn ein Parameter EigenschaftsPfad erwartet wird, Eigenschaftennamen mit einem oder mehreren Punkten nicht unterstützt, da 4D den Pfad nicht korrekt analysieren kann.
Hinweis: Weitere Informationen dazu finden Sie im Abschnitt Identifier für Objekteigenschaft.