4D v17.4

collection.copy( )

Home

 
4D v17.4
collection.copy( )

collection.copy( )  


 

Die Funktion collection.copy( ) gibt eine tiefe/vollständige Kopie der Collection Instanz zurück. Tiefe Kopie (deep copy) bedeutet, dass Objekte oder Collections innerhalb der ursprünglichen Collection dupliziert werden und keine Referenz mit der zurückgegebenen Collection teilen.

Hinweise:

  • Diese Funktion ändert nicht die ursprüngliche Collection
  • Bei Anwendung auf eine shared Collection, gibt copy( ) eine reguläre (not shared) Collection zurück.

Enthält die ursprüngliche Collection Werte vom Typ Zeiger, enthält die Kopie standardmäßig ebenfalls Zeiger. Sie können jedoch beim Kopieren Zeiger auflösen, wenn Sie im Parameter ZeigerAuflösen die Konstante ck resolve pointers übergeben. In diesem Fall wird jeder vorhandene Zeiger in der Collection beim Kopieren bewertet und sein aufgelöster Wert verwendet.

 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!"



Siehe auch 

New collection
OB Copy

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Collections

Dieser Befehl kann in preemptive Prozessen laufen

 
SEITENINHALT 
 
GESCHICHTE 

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v17)
4D Programmiersprache ( 4D v17.1)
4D Programmiersprache ( 4D v17.2)
4D Programmiersprache ( 4D v17.3)
4D Programmiersprache ( 4D v17.4)