Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com

Home

 
4D v19.8
Über Collections

Über Collections  


 

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]  //Zugriff auf das 6. Element der Collection
 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:

 C_COLLECTION(myCol)
 myCol:=New collection("A";"B")
 myCol[5]:="Z"
  //myCol[2]=null
  //myCol[3]=null
  //myCol[4]=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() //tiefe Kopie von $col in $newCol
 $col.push(10;100) //in der Collection 10 und 100 hinzufügen

Einige Methoden geben nach Änderung die ursprüngliche Collection zurück, so dass die Aufrufe in einer Sequenz ablaufen können:

 $col:=New collection(5;20)
 $col2:=$col.push(10;100).sort() //$col2=[5,10,20,100]

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") //undefiniert
 $vmin:=$col.min(["My.special.property"]) //Fehler

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.

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Collections

 
SEITENINHALT 
 
GESCHICHTE 

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v19)
4D Programmiersprache ( 4D v19.1)
4D Programmiersprache ( 4D v19.4)
4D Programmiersprache ( 4D v19.5)
4D Programmiersprache ( 4D v19.6)
4D Programmiersprache ( 4D v19.7)
4D Programmiersprache ( 4D v19.8)