4D inicia um novo tipo de variável: Colecção

Tradução automática de Deepl

4D v16 R4 introduz um novo tipo de variável chamada Collection . A que se destinam estas variáveis? Como Objectos ou BLOBs, as colecções podem ser usadas para conter quase todos os tipos de variáveis como textos, numéricos, booleanos, objectos e mesmo outras colecções. O bom é que, todos estes tipos de variáveis anteriormente mencionados podem ser misturados dentro da mesma colecção, onde as matrizes devem conter sempre o mesmo tipo de elementos!

O que há de novo?

Foram criados dois novos comandos (C_COLLECTION e New collection). O conteúdo das colecções pode ser acedido e modificado utilizando a notação de objecto. As colecções podem ser comparadas a matrizes, mas são muito mais versáteis, pois não se limitam a um só tipo de dados.

As colecções podem ser rigorosamente enfileiradas e as cordas podem ser parsed para criar colecções. Para o fazer, basta utilizar os comandos existentes JSON Stringify e JSON Parse. Se for utilizado para manipular as Arrays JSON, descobrirá que as colecções são muito semelhantes. Se não estiver, habituar-se-á a elas num espaço de tempo muito curto.

Duas diferenças principais a serem notadas:

1. Para aceder aos itens de uma colecção deve usar parênteses rectos [ ], e NÃO parênteses encaracolados { }.

2. Os elementos da colecção começam no índice 0. Assim o primeiro elemento pode ser acedido escrevendo colecção[0] que é diferente das arrays cujo primeiro elemento é 1.

Por um lado, as arrays (cujos elementos são todos do mesmo tipo) permitem a optimização da memória, pelo que são rápidas e eficientes. Por outro lado, as colecções estão a proporcionar grande flexibilidade. Por isso, se a memória ou a velocidade são importantes, use arrays. Se quiser codificar mais facilmente, utilize as colecções. Tem agora uma escolha.

Além disso, na maioria dos casos, as colecções podem ser utilizadas da mesma forma que outros tipos de variáveis em 4D! Podem ser enviadas como parâmetros para métodos, recebidas como retornos de funções, declaradas como locais ou globais, etc.

Exemplo de base de dados

Exemplos

Eis um conjunto de pequenos exemplos de como as colecções podem ser declaradas e utilizadas:

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

$n:=comprimento do col. // This is the way to know the number of items of a collection!
vString :="A colecção contém "+String($n)+" artigos"
)

Roland Lannuzel
- Proprietário do produto & Especialista 4D - Depois de estudar electrónica, a Roland entrou nas TI industriais como desenvolvedor e consultor, construindo soluções para clientes com uma variedade de bases de dados e tecnologias. No final dos anos 80, apaixonou-se pela 4D e utilizou-a para escrever aplicações comerciais que incluem sistemas de contabilidade, facturação e correio electrónico. Juntando-se à empresa em 1997, as valiosas contribuições de Roland incluem a concepção de especificações, ferramentas de teste, demonstrações, bem como formação e palestras para a comunidade 4D em muitas conferências. Ele continua a moldar activamente o futuro da 4D, definindo novas características e ferramentas de desenvolvimento de bases de dados.