4D lance un nouveau type de variable : Collection

Traduit automatiquement de Deepl

4D v16 R4 introduit un nouveau type de variable appelé Collection. À quoi sont destinées ces variables ? Comme les objets ou les BLOBs, les collections peuvent être utilisées pour contenir presque tous les types de variables comme les textes, les chiffres, les booléens, les objets et même d’autres collections. La bonne nouvelle est que tous les types de variables mentionnés précédemment peuvent être mélangés dans une même collection, alors que les tableaux doivent toujours contenir le même type d’éléments !

Quoi de neuf ?

Deux nouvelles commandes ont été créées (C_COLLECTION et New collection). Le contenu des collections peut être consulté et modifié en utilisant la notation objet. Les collections peuvent être comparées à des tableaux mais elles sont beaucoup plus polyvalentes car elles ne sont pas limitées à un seul type de données.

Les collections peuvent être stringifiées et les chaînes peuvent être analysées pour créer des collections. Pour ce faire, il suffit d’utiliser les commandes existantes JSON Stringify et JSON Parse. Si vous avez l’habitude de manipuler des tableaux JSON, vous constaterez que les collections sont très similaires. Si vous ne l’êtes pas, vous vous y habituerez en très peu de temps.

Deux différences principales sont à noter :

1. Pour accéder aux éléments d’une collection, vous devez utiliser des crochets [ ], et NON des accolades { }.

2. Les éléments d’une collection commencent à l’indice 0. On peut donc accéder au premier élément en écrivant collection[0], ce qui est différent des tableaux dont le premier élément est 1.

D’une part, les tableaux (dont les éléments sont tous du même type) permettent d’optimiser la mémoire, ils sont donc rapides et efficaces. D’autre part, les collections offrent une grande flexibilité. Donc, si la mémoire ou la vitesse est importante, utilisez des tableaux. Si vous voulez coder plus facilement, utilisez les collections. Vous avez maintenant le choix.

En outre, dans la plupart des cas, les collections peuvent être utilisées de la même manière que les autres types de variables dans 4D ! Elles peuvent être envoyées comme paramètres à des méthodes, reçues comme retours de fonction, déclarées comme locales ou globales, etc.

Exemple de base de données

Exemples

Voici une série de petits exemples de la façon dont les collections peuvent être déclarées et utilisées :

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:=longueurcol. // This is the way to know the number of items of a collection!
vString :="La collection contient "+String($n)+" items"

Roland Lannuzel
- Product Owner & 4D Expert - Après avoir étudié l'électronique, Roland s'est lancé dans l'informatique industrielle en tant que développeur et consultant, créant des solutions pour les clients avec une variété de bases de données et de technologies. À la fin des années 80, il est tombé amoureux de 4D et l'a utilisé pour écrire des applications commerciales, notamment des systèmes de comptabilité, de facturation et de messagerie électronique. Il a rejoint la société en 1997 et a contribué à la conception de spécifications, d'outils de test et de démonstrations, ainsi qu'à la formation et à la présentation de la communauté 4D lors de nombreuses conférences. Il continue à façonner activement l'avenir de 4D en définissant de nouvelles fonctionnalités et des outils de développement de bases de données.