Je vois régulièrement des affectations multiples pour les tableaux :

 

Puissance2 est un tableau de 0 entiers
Puissance2 = [1, 2, 4, 8, 16, 32, 64, 128, 256]

 


Par contre je ne vois que très rarement cette possibilité appliquée aux structures, ou aux instances de classes en POO. L'écriture du code peut pourtant être grandement facilitée par cette syntaxe, voici un exemple avec une stucture :

 

point3D est une structure
x est un entier
y est un entier
z est un entier
FIN
pDémo est un point3D
pDémo = [0, 0 ,50]

 

 

Page dédiée à cette possibilité : affectation multiple des tableaux, structures et classes

 

 

< Retour

2 commentaires

Jonathan LAURENT aka Johjo
23/11/2018 - 16:47 - Répondre
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

Jonathan LAURENT aka Johjo
23/11/2018 - 16:52 - Répondre
Aie aie aie, mon commentaire n'est pas passé correctement ! Vraiment désolé ! Voici ma réponse mieux formatée : http://www.ytreza.org/fr/blog/reponse-au-blog-du-st-affectations-multiples

Publier un commentaire : 
Votre adresse email ne sera pas publiée