4D v18

collection.copy( )

Accueil

 
4D v18
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_POINTER($p)
 $p:=->$what
 
 $col:=New collection
 $col.push(New object("alpha";"Hello";"num";1))
 $col.push(New object("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)
 ALERT($col3[0].alpha+" "+$col3[1].what) //affiche "Hello You!"



Voir aussi  

OB Copy

 
PROPRIÉTÉS 

Produit : 4D
Thème : Collections

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

 
PAGE CONTENTS 
 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v18)