Understanding IndexOf method with Record Type
|
Smart pascal source code
type
TRec = record
x: Integer;
y: string;
end;
{ TApplication }
procedure TApplication.RunApp;
const
r1: TRec = (x: 1; y: 'one');
r2: TRec = (x: 2; y: 'two');
r3: TRec = (x: 2; y: 'twobis');
var
ints: array of Integer;
recs: array of TRec;
objs: array of TObject;
begin
Writeln('Integers'); // Integers
ints.Add(1);
ints.Add(2);
Writeln(ints.IndexOf(0)); // -1
Writeln(ints.IndexOf(1)); // 0
Writeln(ints.IndexOf(2)); // 1
Writeln(ints.IndexOf(1,1)); // -1
Writeln(ints.IndexOf(2,1)); // 1
{-----}
Writeln('Records'); // Records
recs.Add(r1);
recs.Add(r2);
Writeln(recs.IndexOf(r1)); // 0
Writeln(recs.IndexOf(r2)); // 1
Writeln(recs.IndexOf(r3)); // -1
{-----}
Writeln('Objects'); // Objects
var o := New TObject;
objs.Add(TObject.Create);
objs.Add(o);
Writeln(objs.IndexOf(TObject.Create)); // -1
Writeln(objs.IndexOf(o)); // 1