| Jonathan LAURENT aka Johjo 23/11/2018 - 16:47 - Répondre - En attente de modération Ces syntaxes sont très pratiques et je les utilises régulièrement dans mon code. Mais il faut tout de même faire attention avec ces deux syntaxes. Cas du tableau ============== Dans le cas du tableau, l'affectation multiple ne redimensionne pas le tableau s'il est plus petit (j'ai vu passer cette info sur twitter récemment) : . Puissance2 est un tableau de 0 entiers . Puissance2 = [1, 2, 4, 8, 16, 32, 64, 128, 256] . Trace(TableauVersChaîne(Puissance2, ",")) // Affiche 1,2,4,8,16,32,64,128,256 . Puissance2 = [1, 2, 4, 8, 16, 32] . Trace(TableauVersChaîne(Puissance2, ",")) // Affiche 1,2,4,8,16,32,0,0,0 Cas de la structure =================== Dans le cas de la structure, plusieurs dangers : - si on supprime un attribut (z par exemple), le compilateur ne signale pas les changements. - si on change l'ordre des attributs, on casse tout Et enfin, dans le cas d'une classe, je le déconseille vivement pour plusieurs raisons : - on ne peut pas l'utiliser sur une instance de classe dynamique (ma_variable est une cClasse dynamique) - on initialise directement les attributs, qu'ils soient publics ou privés. L'encapsulation en prend un sacré coup. Tableau associatif ================== Enfin, on peut aussi l'utiliser pour les tableaux associatifs (j'adore cette syntaxe !) . mon_tableau est un tableau associatif de chaîne = [["clé1", "valeur 1"], ["clé2", "valeur 2"]] . POUR TOUT valeur, clé de mon_tableau . Trace(clé, valeur) . FIN Tableau de structure ==================== Et on peut aussi l'utiliser pour un tableau de structure : . point3D est une Structure . x est un entier . y est un entier . z est un entier . FIN . . tableau_de_points est un tableau de point3D = [... . [0, 0, 0],... . [0, 0, 1],... . [0, 1, 1]] . . POUR TOUT point DE tableau_de_points . Trace(point.x, point.y, point.z) . FIN Tableau associatif de structure =============================== Voire un tableau associatif de structure : . point3D est une St |