4D initiiert einen neuen Variablentyp: Sammlung

Automatisch übersetzt von Deepl

4D v16 R4 führt eine neue Art von Variablen ein, die Collection genannt wird. Wofür sind diese Variablen gedacht? Wie Objekte oder BLOBs können Sammlungen verwendet werden, um fast jede Art von Variablen-Typen wie Texte, numerische Werte, Boolesche Werte, Objekte und sogar andere Sammlungen zu speichern. Das Gute daran ist, dass alle oben genannten Variablentypen innerhalb derselben Sammlung gemischt werden können, während Arrays immer den gleichen Typ von Elementen enthalten müssen!

Was ist neu?

Es wurden zwei neue Befehle erstellt (C_COLLECTION und New collection). Auf den Inhalt von Sammlungen kann über die Objektnotation zugegriffen und dieser verändert werden. Die Sammlungen können mit Arrays verglichen werden, sind aber vielseitiger, da sie nicht auf einen einzigen Datentyp beschränkt sind.

Die Sammlungen können in Strings umgewandelt werden und Strings können geparst werden, um Sammlungen zu erstellen. Verwenden Sie dazu einfach die bestehenden Befehle JSON Stringify und JSON Parse. Wenn Sie es gewohnt sind, JSON-Arrays zu manipulieren, werden Sie feststellen, dass Sammlungen sehr ähnlich sind. Wenn nicht, werden Sie sich in kürzester Zeit an sie gewöhnen.

Zwei Hauptunterschiede sind zu beachten:

1. Um auf Elemente einer Sammlung zuzugreifen, müssen Sie eckige Klammern [ ] verwenden, und NICHT geschweifte Klammern { }.

2. Die Elemente einer Sammlung beginnen mit dem Index 0, d.h. auf das erste Element kann mit collection[0] zugegriffen werden, anders als bei Arrays, deren erstes Element 1 ist.

Einerseits ermöglichen Arrays (deren Elemente alle vom gleichen Typ sind) eine Speicheroptimierung, so dass sie schnell und effizient sind. Andererseits bieten Sammlungen eine hohe Flexibilität. Wenn also Speicherplatz oder Geschwindigkeit eine Rolle spielen, sollten Sie Arrays verwenden. Wenn Sie einfacher programmieren wollen, verwenden Sie Sammlungen. Sie haben jetzt die Wahl.

Außerdem können Collections in den meisten Fällen genauso verwendet werden wie andere Arten von Variablen in 4D! Sie können als Parameter an Methoden gesendet werden, als Funktionsrückgabe empfangen werden, als lokal oder global deklariert werden, usw.

Beispiel Datenbank

Beispiele

Hier sind eine Reihe kleiner Beispiele, wie Sammlungen deklariert und verwendet werden können:

C_COLLECTION(myCollection)
col1 := New collection(12;14; "zoulou";45)
col2 := New collection(50; "bravo";col1;Current date)
col3 := New collection(col1;col2)

$obj:=New Object("val"; "Echo")
col := New collection(12; "alpha";$obj;True)
vNum :=col[0] // Access first element of the collection
vString :=col[1]
obj :=col[2]
bool :=col[3]

$n:=col.length // This is the way to know the number of items of a collection!
vString :="Die Sammlung enthält "+String($n)+" items"

Roland Lannuzel
- Product Owner & 4D Experte - Nach seinem Studium der Elektronik arbeitete Roland als Entwickler und Berater in der industriellen IT-Branche, wo er Lösungen für Kunden mit einer Vielzahl von Datenbanken und Technologien entwickelte. In den späten 80er Jahren verliebte er sich in 4D und setzte es bei der Entwicklung von Geschäftsanwendungen wie Buchhaltungs-, Abrechnungs- und E-Mail-Systemen ein. 1997 trat er schließlich in das Unternehmen ein und leistete einen wertvollen Beitrag, indem er Spezifikationen, Testtools und Demos entwarf, Schulungen durchführte und auf vielen Konferenzen für die 4D Community sprach. Er gestaltet die Zukunft von 4D aktiv mit, indem er neue Funktionen und Datenbankentwicklungstools definiert.