4D inicia un nuevo tipo de variable: Colección

Traducido automáticamente de Deepl

4D v16 R4 introduce un nuevo tipo de variable llamada Colección. ¿Para qué sirven estas variables? Al igual que los Objetos o BLOBs, las colecciones pueden ser utilizadas para contener casi cualquier tipo de variable como textos, numéricos, booleanos, objetos e incluso otras colecciones. ¡Lo bueno es que, todos estos tipos de variables antes mencionados pueden ser mezclados dentro de la misma colección, mientras que los arrays deben contener siempre el mismo tipo de elementos!

¿Qué hay de nuevo?

Se han creado dos nuevos comandos (C_COLLECTION y New collection). Se puede acceder al contenido de las colecciones y modificarlo utilizando la notación de objeto. Las colecciones pueden compararse con las matrices, pero son mucho más versátiles, ya que no están limitadas a un solo tipo de datos.

Las colecciones pueden ser stringificadas y las cadenas pueden ser analizadas para crear colecciones. Para ello, basta con utilizar los comandos existentes JSON Stringify y JSON Parse. Si estás acostumbrado a manipular Arrays JSON, descubrirás que las colecciones son muy similares. Si no lo estás, te acostumbrarás a ellas en muy poco tiempo.

Hay dos diferencias principales que hay que notar:

1. Para acceder a los elementos de una colección debes utilizar corchetes [ ], y NO llaves { }.

2. Los elementos de la colección comienzan en el índice 0. Por lo tanto, se puede acceder al primer elemento escribiendo collection[0], lo cual es diferente de los arrays, cuyo primer elemento es el 1.

Por un lado, los arrays (cuyos elementos son todos del mismo tipo) permiten optimizar la memoria, por lo que son rápidos y eficientes. Por otro lado, las colecciones ofrecen una gran flexibilidad. Así que, si importa la memoria o la velocidad, usa arrays. Si lo que importa es la facilidad de codificación, usa colecciones. Ahora puedes elegir.

Además, en la mayoría de los casos, las colecciones se pueden utilizar de la misma manera que otro tipo de variables en 4D. Pueden ser enviadas como parámetros a métodos, recibidas como retornos de funciones, declaradas como locales o globales, etc.

Ejemplo de base de datos

Ejemplos

Aquí hay un conjunto de pequeños ejemplos de cómo se pueden declarar y utilizar las colecciones:

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"; "Eco")
col := New collection(12; "alfa";$obj;True)
vNum :=col[0] // Access first element of the collection
vString :=col[1]
obj :=col[2]
bool :=col[3]

$n:=col.longitud // This is the way to know the number of items of a collection!
vString :="La colección contiene "+String($n)+" elementos"

Roland Lannuzel
- Propietario de Producto y Experto en 4D - Después de estudiar electrónica, Roland se dedicó a la informática industrial como desarrollador y consultor, construyendo soluciones para clientes con una variedad de bases de datos y tecnologías. A finales de los años 80 se enamoró de 4D y lo ha utilizado para escribir aplicaciones de negocio que incluyen sistemas de contabilidad, facturación y correo electrónico.Eventualmente se unió a la compañía en 1997, las valiosas contribuciones de Roland incluyen el diseño de especificaciones, herramientas de prueba, demos, así como la formación y hablar con la comunidad 4D en muchas conferencias. Continúa dando forma activamente al futuro de 4D definiendo nuevas características y herramientas de desarrollo de bases de datos.