4D v19collection.copy( ) | 
            ||||||||
                 
                
  | 
                
			
                    
                         
    4D v19
 
collection.copy( ) 
                                
                                
        
 | 
                |||||||
| option | Description | 
| ck resolve pointers | Si la collection d'origine contient des valeurs de type pointeur, par défaut la copie contient également les pointeurs. Toutefois, vous pouvez résoudre les pointeurs au moment de la copie, en passant ck resolve pointers. Dans ce cas, chaque pointeur contenu dans la collection est évalué lors de la copie et sa valeur déréférencée est utilisée. | 
| ck shared | Par défaut, copy( ) retourne une collection standard (non partagée), même si la commande s'applique à une collection partagée. Passez la constante ck shared pour créer une collection partagée. Dans ce cas, vous pouvez utiliser le paramètre grouperAvec pour associer la collection partagée avec un(e) autre collection/objet (voir ci-sessous). | 
Le paramètre grouperAvec vous permet de désigner une collection ou un objet auquel/à laquelle la collection résultante sera associée.
Nous souhaitons copier la collection standard (non partagée) $lastname dans l'objet partagé $sharedObject. Pour ce faire, nous devons créer une copie partagée de la collection ($sharedLastname).
 C_OBJECT($sharedObject)
 C_COLLECTION($lastnames;$sharedLastnames)
 C_TEXT($text)
 
 $sharedObject:=New shared object
 
 $text:=Document to text(Get 4D folder(Current resources folder)+"lastnames.txt")
 $lastnames:=JSON Parse($text) //$lastnames est une collection standard
 
 $sharedLastnames:=$lastnames.copy(ck shared) //$sharedLastnames est une collection partagée
 
  //Nous pouvons maintenant intégrer $sharedLastnames à $sharedObject
 Use($sharedObject)
    $sharedObject.lastnames:=$sharedLastnames
 End useNous souhaitons combiner $sharedColl1 et $sharedColl2. Etant donné qu'ils appartiennent à différents groupes partagés, une combinaison directe pourrait générer une erreur. Nous devons effectuer une copie partagée de $sharedColl1 et désigner $sharedColl2 comme étant un groupe partagé de la copie.
 C_COLLECTION($sharedColl1;$sharedColl2;$copyColl)</p><p>
 $sharedColl1:=New shared collection(New shared object("lastname";"Smith"))
 $sharedColl2:=New shared collection(New shared object("lastname";"Brown"))
 
  //$copyColl appartient au même groupe partagé que $sharedColl2
 $copyColl:=$sharedColl1.copy(ck shared;$sharedColl2)
 Use($sharedColl2)
    $sharedColl2.combine($copyColl)
 End useNous avons une collection standard ($lastnames) et nous souhaitons la placer dans le Storage de l'application. Pour ce faire, nous devons préalablement créer une copie partagée ($sharedLastnames).
 C_COLLECTION($lastnames;$sharedLastnames)
 C_TEXT($text)
 
 $text:=Document to text(Get 4D folder(Current resources folder)+"lastnames.txt")
 $lastnames:=JSON Parse($text) //$lastnames est une collection standard
 
 $sharedLastnames:=$lastnames.copy(ck shared) // copie partagée
 
 Use(Storage)
    Storage.lastnames:=$sharedLastnames
 End useCet exemple illustre l'utilisation de l'option ck resolve pointers :
 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!"
	Produit :  4D
	Thème :  Collections
	
        
        
	
	
	
	
	
	4D - Langage ( 4D v19)
	
	
	4D - Langage ( 4D v19.1)
Ajouter un commentaire