Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com

Inicio

 
4D v19.8
Presentación de las colecciones

Presentación de las colecciones  


 


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]  //acceso al 6 ° elemento de la colección
 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:

 C_COLLECTION(myCol)
 myCol:=New collection("A";"B")
 myCol[5]:="Z"
  //myCol[2]=null
  //myCol[3]=null
  //myCol[4]=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() //copia completa de $col a $newCol
 $col.push(10;100) //agrega 10 y 100 a la colección

Algunos métodos devuelven la colección original después de la modificación, para que pueda ejecutar las llamadas en una secuencia:

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

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

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.

 
PROPIEDADES 

Producto: 4D
Tema: Colecciones

 
CONTENIDO DE LA PÁGINA 
 
HISTORIA 

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v19)
Manual de lenguaje 4D ( 4D v19.1)
Manual de lenguaje 4D ( 4D v19.4)
Manual de lenguaje 4D ( 4D v19.5)
Manual de lenguaje 4D ( 4D v19.6)
Manual de lenguaje 4D ( 4D v19.7)
Manual de lenguaje 4D ( 4D v19.8)