Saltar al contenido principal
Versión: 20 R7 BETA

Nueva colección

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

ParámetrosTipoDescripción
valueNumber, Text, Date, Time, Boolean, Object, Collection, Picture, PointerValor(es) de collection
ResultadoCollectionNueva colección

Descripción

El comando New collection crea una nueva colección vacía o prellenada y devuelve su referencia. Las colecciones pueden manejarse utilizando propiedades y funciones de la API de la clase Collection.

Si no se pasa ningún parámetro, New collection crea una colección vacía y devuelve su referencia.

Debe asignar la referencia devuelta a una variable 4D del tipo Collection.

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

Opcionalmente, puede prellenar la nueva colección pasando uno o varios valores como parámetro(s).

De lo contrario, puede añadir o modificar elementos posteriormente por asignación. Por ejemplo:

 myCol[10]:="My new element"

Si el nuevo índice del elemento está más allá del último elemento existente de la colección, la colección se redimensiona automáticamente y a todos los nuevos elementos intermedios se les asigna un valor null.

Puede pasar cualquier número de valores de todos los tipos soportados (number, text, date, picture, pointer, object, collection...). A diferencia de los arrays, las colecciones pueden mezclar datos de diferentes tipos.

Debe prestar atención a los siguientes aspectos de la conversión:

  • Si pasasun puntero, se mantiene "tal cual"; se evalúa utilizando el comando JSON Stringify
  • Las fechas se almacenan como fechas "aaaa-mm-dd" o de cadenas con el formato "AAAA-MM-DDTHH:mm:ss.SSSZ", según la configuración actual "fechas dentro de los objetos" de la base de datos. Al convertir las fechas 4D en texto antes de almacenarlas en la colección, por defecto el programa tiene en cuenta la zona horaria local. Puede modificar este comportamiento utilizando el selector Dates inside objects del comando SET DATABASE PARAMETER.
  • Si pasa un tiempo, se almacena como un número de milisegundos (Real).

Ejemplo 1

Quiere crear una nueva colección vacía y asignarla a una variable colección 4D:

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

Ejemplo 2

Quiere crear una colección precargada:

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

Ejemplo 3

Se crea una nueva colección y se añade un nuevo elemento:

 var $coll : Collection
$coll:=New collection("a";"b";"c")
//$coll=["a","b","c"]
$coll[9]:="z" //añadir un décimo elemento con valor "z"
$vcolSize:=$coll.length //10
//$coll=["a","b","c",null,null,null,null,null,null,"z"]

Ver también

New shared collection
Type