4D v19collection.copy( ) | 
            ||||||||
                 
                
  | 
                
			
                    
                         
    4D v19
 
collection.copy( ) 
                                
                                
        
 | 
                |||||||
| option | Beschreibung | 
| ck resolve pointers | Enthält die ursprüngliche Collection Werte vom Typ Zeiger, enthält die Kopie standardmäßig ebenfalls Zeiger. Sie können jedoch die Konstante ck resolve pointers übergeben, um Zeiger beim Kopieren aufzulösen. In diesem Fall wird jeder in der Collection verfügbare Zeiger beim Kopieren bewertet und sein aufgelöster Wert verwendet. | 
| ck shared | collection.copy( ) gibt standardmäßig eine reguläre Collection (not shared) zurück, selbst bei Anwendung auf eine shared collection. Übergeben Sie die Konstante ck shared, um eine shared collection zu erstellen. Dann können Sie sie über den Parameter GruppierenMit mit einer anderen Collection bzw. Objekt gruppieren (siehe unten). | 
Mit dem Parameter GruppierenMit können Sie eine Collection oder ein Objekt bestimmen, denen die zurückgegebene Collection zugeordnet werden soll.
We want to copy the $lastnames regular (non shared) collection into the $sharedObject shared object. To do this, we must create a shared copy of the collection ($sharedLastnames).
 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 is a regular collection
 
 $sharedLastnames:=$lastnames.copy(ck shared) //$sharedLastnames is a shared collection
 
  //Now we can put $sharedLastnames into $sharedObject
 Use($sharedObject)
    $sharedObject.lastnames:=$sharedLastnames
 End useWir wollen $sharedColl1 und $sharedColl2 kombinieren. Da sie aber zu unterschiedlichen Gruppen gehören, führt direktes Kombinieren zu einem Fehler. Deshalb machen wir eine Kopie von $sharedColl1 und weisen $sharedColl2 der Kopie als shared group zu.
 C_COLLECTION($sharedColl1;$sharedColl2;$copyColl)
 
 $sharedColl1:=New shared collection(New shared object("lastname";"Smith"))
 $sharedColl2:=New shared collection(New shared object("lastname";"Brown"))
 
  //$copyColl gehört zur selben shared group wie $sharedColl2
 $copyColl:=$sharedColl1.copy(ck shared;$sharedColl2)
 Use($sharedColl2)
    $sharedColl2.combine($copyColl)
 End useWir haben eine reguläre Collection ($lastnames) und wollen sie in den Befehl Storage der Anwendung setzen. To do this, we must create a shared copy beforehand ($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 is a regular collection
 
 $sharedLastnames:=$lastnames.copy(ck shared) // shared copy
 
 Use(Storage)
    Storage.lastnames:=$sharedLastnames
 End useDieses Beispiel zeigt den Einsatz der 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) //zeigt "Hello World!"
 
 $what:="You!"
 $col3:=$col2.copy(ck resolve pointers)
 ALERT($col3[0].alpha+" "+$col3[1].what) //zeigt "Hello You!"
	Produkt: 4D
	Thema: Collections
	
        
        
	
	
	
	
	
	4D Programmiersprache ( 4D v19)
	
	
	4D Programmiersprache ( 4D v19.1)
Fehler melden