Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
collection.copy( )
|
collection.copy ({ resolvPtrs {; agruparCon}} ) -> Resultado | ||||||||
Parámetro | Tipo | Descripción | ||||||
resolvPtrs | Entero largo |
![]() |
True = resuelve punteros, False u omitido = no resuelve punteros | |||||
agruparCon | Collection, Objeto |
![]() |
Colección u objeto compartido a agrupar con la colección resultante | |||||
Resultado | Collection |
![]() |
Copia completa de la colección original | |||||
El método collection.copy( ) devuelve una copia completa de la instancia de recopilación. Copia completa significa que los objetos o colecciones dentro de la colección original están duplicados y no comparten ninguna referencia con la colección devuelta.
Nota: este método no modifica la colección original.
Si se pasa, El parámetro opcion puede contener una de las siguientes constantes (o ambas):
opción | Descripción |
ck resolve pointers | Si la colección original contiene valores de tipo de puntero, por defecto la copia también contiene los punteros. Sin embargo, puede resolver los punteros al copiar pasando los ck resolve pointers. En este caso, cada puntero presente en la colección se evalúa al copiar y se utiliza su valor desreferenciado. |
ck shared | Por defecto, copy( ) devuelve una colección regular (no compartida), incluso si el comando se aplica a una colección compartida. Pase la constante ck shared para crear una colección compartida. En este caso, puede utilizar el parámetro agruparCon para asociar la colección compartida con otra colección u objeto (ver abajo). |
El parámetro agruparCon le permite designar una colección o un objeto con el que debe asociarse la colección resultante.
Queremos copiar la colección regular (no compartida) $lastnames en el objeto compartido $sharedObject. Para hacer esto, debemos crear una copia compartida de la colección ($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 es una colección regular
$sharedLastnames:=$lastnames.copy(ck shared) //$sharedLastnames es una colección compartida
//Ahora podemos poner $sharedLastnames en $sharedObject
Use($sharedObject)
$sharedObject.lastnames:=$sharedLastnames
End use
Queremos combinar $sharedColl1 y $sharedColl2 pero dado que pertenecen a diferentes grupos compartidos, una combinación directa daría como resultado un error. Debemos hacer una copia compartida de $sharedColl1 y designar $sharedColl2 como grupo compartido para la copia.
C_COLLECTION($sharedColl1;$sharedColl2;$copyColl)
$sharedColl1:=New shared collection(New shared object("lastname";"Smith"))
$sharedColl2:=New shared collection(New shared object("lastname";"Brown"))
//$copyColl pertenece al mismo grupo compartido que $sharedColl2
$copyColl:=$sharedColl1.copy(ck shared;$sharedColl2)
Use($sharedColl2)
$sharedColl2.combine($copyColl)
End use
Tenemos una colección regular ($lastnames) y queremos ponerla en el Storage de la aplicación. Para hacer esto, debemos crear una copia compartida de antemano ($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 es una colección regular
$sharedLastnames:=$lastnames.copy(ck shared) // copia compartida
Use(Storage)
Storage.lastnames:=$sharedLastnames
End use
Este ejemplo ilustra el uso de la opción 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) //muestra "Hello World!"
$what:="You!"
$col3:=$col2.copy(ck resolve pointers)
ALERT($col3[0].alpha+" "+$col3[1].what) //muestra "Hello You!"
Producto: 4D
Tema: Colecciones
Creado por: 4D v16 R6
Modificado: 4D v18 R3
Manual de lenguaje 4D ( 4D v19)
Manual de lenguaje 4D ( 4D v19.1)
Manual de lenguaje 4D ( 4D v19.4)
Manual de lenguaje 4D ( 4D v19.5)
Manual de lenguaje 4D ( 4D v19.6)
Manual de lenguaje 4D ( 4D v19.7)
Manual de lenguaje 4D ( 4D v19.8)