4D v19collection.copy( ) | 
            ||||||||
                 
                
  | 
                
			
                    
                         
    4D v19
 
collection.copy( ) 
                                
                                
        
 | 
                |||||||
| opção | Descrição | 
| ck resolve pointers | se a coleção original conter valores tipo ponteiros, como padrão a cópia também contém os ponteiros. Entretanto, pode resolver os ponteiros quando copiar ao passar o ck resolve pointers. Nesse caso cada ponteiro presente na coleção é avaliado quando copiar e seu valor sem referência for usado. | 
| ck shared | Como padrão, copy( ) retorna uma coleção regular (não partilhada) , mesmo se o comando for aplicado para uma coleção partilhada. Passe a constante ck shared para criar uma coleção partilhada. nesse caso, pode usar o parâmetro groupWith para associar a coleção partilhada com outra coleção ou objeto (ver abaixo). | 
O parâmetro groupWith permite que determine uma coleção ou um objeto com o qual a coleção resultante deve ser associada
 
Para copiar a coleção (não partilhada) regular $lastnames no objeto partilhado $sharedObject, precisa criar uma cópia partilhada da coleção ($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 é uma coleção normal
 
 $sharedLastnames:=$lastnames.copy(ck shared) //$sharedLastnames é uma coleção partilhada
 
  //Agora podemos copiar $sharedLastnames em $sharedObject
 Use($sharedObject)
    $sharedObject.lastnames:=$sharedLastnames
 End usePode combinar $sharedColl1 e $sharedColl2, mas como pertencem a grupos partilhados diferentes, uma combinação direta vai resultar em um erro. Precisa fazer uma cópia partilhada de $sharedColl1 e designar $sharedColl2 como grupo partilhado para a cópia.
 C_COLLECTION($sharedColl1;$sharedColl2;$copyColl)
 
 $sharedColl1:=New shared collection(New shared object("lastname";"Smith"))
 $sharedColl2:=New shared collection(New shared object("lastname";"Brown"))
 
  //$copyColl pertence ao mesmo grupo partilhado como $sharedColl2
 $copyColl:=$sharedColl1.copy(ck shared;$sharedColl2)
 Use($sharedColl2)
    $sharedColl2.combine($copyColl)
 End useSe tiver uma coleção normal ($lastnames) e quiser colocá-la em Storage da aplicação. Para fazer isso, precisa antes criar uma cópia partilhada ($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 ´´e uma coleção normal
 
 $sharedLastnames:=$lastnames.copy(ck shared) // cópia partilhada
 
 Use(Storage)
    Storage.lastnames:=$sharedLastnames
 End useEste exemplo illustra o uso da opção 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) //exibe a mensagem "Hello World!"
 
 $what:="You!"
 $col3:=$col2.copy(ck resolve pointers)
 ALERT($col3[0].alpha+" "+$col3[1].what) //exibe "Hello You!"
	Produto: 4D
	Tema: Coleções
	
        
        
	
	
	
	
	
	Manual de linguagem 4D ( 4D v19)
	
	
	Manual de linguagem 4D ( 4D v19.1)
Adicionar um comentário