Aller au contenu principal
Version: 20 R7 BETA

New collection

New collection {( ...value : any )} : Collection

ParamètresTypeDescription
valueNumber, Text, Date, Time, Boolean, Object, Collection, Picture, PointerValeur(s) de collection
RésultatCollectionNew collection

Description

The New collection command creates a new empty or prefilled collection and returns its reference. Collections can be handled using properties and functions of the Collection class API.

Si vous ne passez aucun paramètre, New collection crée une collection vide et retourne sa référence.

Vous devez affecter la référence retournée à une variable 4D de type Collection.

Keep in mind that var : Collection statement declares a variable of the Collection type but does not create any collection.

Optionnellement, vous pouvez préremplir la nouvelle collection en passant une ou plusieurs value(s) comme paramètre(s).

Sinon, vous pouvez ajouter ou modifier des éléments ultérieurement par affectation. Par exemple :

 myCol[10]:="Mon nouvel élément"

Si l'indice du nouvel élément est au-delà du dernier élément existant de la collection, la collection est automatiquement redimensionnée et tous les nouveaux éléments intermédiaires sont reçoivent la valeur null.

Vous pouvez passer n'importe quel nombre de valeurs de n'importe quel type pris en charge (number, text, date, picture, pointer, object, collection...). Contrairement aux tableaux, les collections peuvent mélanger des données de différents types.

Vous devez prêter attention aux problèmes de conversion suivants :

  • Si vous passez un pointeur, il est conservé "tel quel" ; il est évalué à l'aide de la commande JSON Stringify
  • Les dates sont stockées sous la forme de date « aaaa-mm-jj » ou des chaînes au format « AAAA-MM-JJTHH: ss.SSSZ: mm » , selon la configuration actuelle « dates à l'intérieur des objets » de la base de données. Lors de la conversion de dates 4D en texte avant de les stocker dans la collection, par défaut le programme prend en compte le fuseau horaire local. Vous pouvez modifier ce comportement en utilisant le sélecteur Dates inside objects de la commande SET DATABASE PARAMETER.
  • Si vous passez une heure, elle est stockée sous la forme d'un nombre de millisecondes (Réel).

Exemple 1

Vous souhaitez créer une nouvelle collection vide et l'assigner à une variable collection 4D :

 var $myCol : Collection
$myCol:=New collection
//$myCol=[]

Exemple 2

Vous souhaitez créer une collection pré-remplie :

 var $filledColl : Collection
$filledColl:=New collection(33;"mike";"november";->myPtr;Current date)
//$filledColl=[33,"mike","november","->myPtr","2017-03-28T22:00:00.000Z"]

Exemple 3

Vous souhaitez créer une nouvelle collection puis ajouter un élément :

 var $coll : Collection
$coll:=New collection("a";"b";"c")
//$coll=["a","b","c"]
$coll[9]:="z" //ajouter un 10e élément avec la valeur "z"
$vcolSize:=$coll.length //10
//$coll=["a","b","c",null,null,null,null,null,null,"z"]

Voir également

New shared collection
Type