Deepcopy: Difference between revisions

Added Delphi example
m (→‎{{header|Raku}}: .perl -> .raku)
(Added Delphi example)
Line 392:
[ [ [ [ [...] 7 ] 7 ] 7 ] 7 ]
[ [ [ [ [...] ] ] ] ]</pre>
=={{header|Delphi}}==
{{libheader| System.TypInfo}}
<lang Delphi>
program DeepCopyApp;
 
{$APPTYPE CONSOLE}
 
uses
System.TypInfo;
 
type
TTypeA = record
value1: integer;
value2: char;
value3: string[10];
value4: Boolean;
function DeepCopy: TTypeA;
end;
 
{ TTypeA }
 
function TTypeA.DeepCopy: TTypeA;
begin
CopyRecord(@result, @self, TypeInfo(TTypeA));
end;
 
var
a, b: TTypeA;
 
begin
a.value1 := 10;
a.value2 := 'A';
a.value3 := 'OK';
a.value4 := True;
 
b := a.DeepCopy;
a.value1 := 20;
a.value2 := 'B';
a.value3 := 'NOK';
a.value4 := False;
 
Writeln('Value of "a":');
Writeln(a.value1);
Writeln(a.value2);
Writeln(a.value3);
Writeln(a.value4);
 
Writeln(#10'Value of "b":');
Writeln(b.value1);
Writeln(b.value2);
Writeln(b.value3);
Writeln(b.value4);
readln;
end.</lang>
{{out}}
<pre>Value of "a":
20
B
NOK
FALSE
 
Value of "b":
10
A
OK
TRUE</pre>
 
=={{header|E}}==
478

edits