Paul Ishenin pisze:
darekm wrote:
I've play with forin construction. To my work I need more than one per collection.
In attach is one of example program.
Can someone review it. is this proper construction.
operator enumerator (AEnumerator: TEnumerator): TEnumerator;
begin
 Result := AEnumerator
end;

It is a bit hackish but I see problems with it.
Where?
Its work now with current compilator. Are You plan to disable this?


 for i in List.up do
   WriteLn(i);

will be possible to transform into

 for i in List using Up do
   WriteLn(i);

or

 for i in List using GetEnumerator(DoUpArgument)

current "for i in List" will be just short form of "for i in List using GetEnumerator"
But this complicate both: source and compilator.
And second: You cant pass enumerator as param.

procedure MyProc(aEnum: tObject);
var
  i : integer;
begin
 for i in aEnum do
  writeln(i);
end;


MyProc(List.up);
MyProc(List)




--
 Darek




_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to