Los comandos del tema
Colecciones crean y trabajan con colecciones.
Las colecciones son listas ordenadas de valores de tipos similares o mixtos (texto, número, objeto, booleano, colección o null). Para manipular las variables del tipo Colección, debe usar la notación del objeto (ver
Uso de la notación objeto). Para información adicional sobre colecciones 4D, consulte el párrafo en la sección
RELATE MANY.
Para acceder a un elemento de colección, debe pasar el número de elemento entre corchetes:
collectionRef[expression]
Puede pasar cualquier expresión 4D válida que devuelva un entero positivo en expression. Ejemplos:
myCollection[5]
myCollection[$var]
Nota: tenga en cuenta que los elementos de la colección están numerados desde 0.
Puede asignar un valor a un elemento de colección u obtener un valor de elemento de colección utilizando la notación de objeto:
myCol[10]:="My new element"
$myVar:=myCol[0]
Si asigna un índice de elemento que supera el último elemento existente de la colección, la colección se redimensionará automáticamente y a todos los elementos intermedios nuevos se les asignará un valor null:
Puede crear dos tipos de colecciones:
- colecciones estándar (no compartidas), utilizando el comando New collection.
Estas colecciones admiten una gran cantidad de tipos de datos, incluidas imágenes y punteros. Se pueden editar sin ningún control de acceso específico. - colecciones compartidas, utilizando el comando New shared collection.
Estas colecciones se pueden compartir entre procesos, incluidos los hilos apropiativos. El acceso a estas colecciones está controlado por estructuras Use...End use. Para más información, consulte la página Objetos y colecciones compartidos.
Las referencias colección 4D se benefician de métodos específicos llamados member functions). Gracias a la notación objeto (ver Uso de la notación objeto), estos métodos se pueden aplicar a las referencias de colección utilizando la siguiente sintaxis:
{$result:=}myCollection.method( {params} )
Tenga en cuenta que, incluso si no tiene parámetros, un método debe llamarse con paréntesis (), de lo contrario se genera un error de sintaxis.
Por ejemplo:
$newCol:=$col.copy()
$col.push(10;100)
Algunos métodos devuelven la colección original después de la modificación, para que pueda ejecutar las llamadas en una secuencia:
Atención: cuando utilice métodos colección, debe utilizar rutas de propiedad conformes con ECMA Script, es decir, no puede utilizar ".", "[ ]", ni espacios en los nombres de propiedades. Por ejemplo, de acuerdo con la sección Identificadores de propiedades de objetos, los nombres de propiedades tales como $o["My.special.property"] son soportados. Sin embargo, no serán utilizables con métodos:
$vmin:=$col.min("My.special.property")
$vmin:=$col.min(["My.special.property"])
Varios métodos colección aceptan una rutaProp como parámetro. Este parámetro puede contener:
- ya sea un nombre de propiedad del objeto, por ejemplo, "apellido"
- o una ruta de propiedad del objeto, es decir, una secuencia jerárquica de sub-propiedades unidas con caracteres de punto, por ejemplo "empleado.hijo.apellido".
En consecuencia, cuando se espera un parámetro rutaProp, utilizando nombres de propiedad que contienen uno o más "." no es soportado ya que evitará que 4D analice correctamente la ruta.
Nota: para más información, consulte la sección Identificadores de propiedades de objetos.