close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 15 years ago

Closed 15 years ago

#932 closed defect (fixed)

Comando Copy

Reported by: Iván Robles Owned by: Víctor de Buen Remiro
Priority: highest Milestone:
Component: Kernel Version: 2.0.1
Severity: blocker Keywords:
Cc:

Description

Buenas,

cuando hago una copia de un conjunto y modifico el copiado tambien se modifica el original

 Set a = [["Antes"]];
 Set b = Copy(a);
 Text b[1]:="Despues";

Despues a contiene "Despues"

Change History (1)

comment:1 Changed 15 years ago by Víctor de Buen Remiro

Resolution: fixed
Status: newclosed

Lo que ocurre es que el conjunto en realidad es sólo una lista de referencias a sus elementos. Cuando copias un conjunto sólo copias la lista, los elementos son los mismos.

Para hacer lo que tú quieres existe otro operador que sí entra a copiar recursivamente todos los elementos de un conjunto.

 Set a = [["Antes"]];
 Set b = DeepCopy(a);
 Text b[1]:="Despues";
 WriteLn("a[1]="<<a[1]); 
 WriteLn("b[1]="<<b[1]); 
Note: See TracTickets for help on using tickets.