4D v17.4

collection.copy( )

Accueil

 
4D v17.4
collection.copy( )

collection.copy( )  


 

La méthode collection.copy( ) retourne une "copie profonde" (deep copy) de la collection . "Copie profonde" signifie que les objets ou les collections présents dans la collection d'origine sont dupliqués et ne partagent pas leur référence avec la collection qui est retournée.

Notes :

  • Cette méthode ne modifie pas la collection d'origine.
  • Lorsqu'elle est appliquée à une collection partagée, collection.copy( ) retourne une collection standard (non partagée).

Si la collection d'origine contient des valeurs de type pointeur, par défaut la copie contient également les pointeurs. Vous pouvez cependant résoudre les pointeurs au moment de la copie : pour cela, passez la constante ck resolve pointers dans le paramètre résoudrePtrs. Dans ce cas, chaque pointeur présent comme valeur dans la collection sera évalué au moment de la copie et sa valeur dépointée sera utilisée.

Exemple  

 C_COLLECTION($col)
 C_POINTEUR($p)
 $p:=->$what
 
 $col:=Creer collection
 $col.push(Creer objet("alpha";"Hello";"num";1))
 $col.push(Creer objet("beta";"You";"what";$p))
 
 $col2:=$col.copy()
 $col2[1].beta:="World!"
 ALERT($col[0].alpha+" "+$col2[1].beta) //affiche "Hello World!"
 
 $what:="You!"
 $col3:=$col2.copy(ck resolve pointers)
 ALERTE($col3[0].alpha+" "+$col3[1].what) //affiche "Hello You!"



Voir aussi  

Creer collection
OB Copier

 
PROPRIÉTÉS 

Produit : 4D
Thème : Collections
Nom intl. : collection.copy( )

Commande(s) éligible(s) à l'exécution dans un process préemptif

 
PAGE CONTENTS 
 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v17)
4D - Langage ( 4D v17.1)
4D - Langage ( 4D v17.2)
4D - Langage ( 4D v17.3)
4D - Langage ( 4D v17.4)