Jakie profity w porównaniu do listy obiektów niosą generyki prócz pętli for .. in ?
Ta pętla nie jest wykorzystywana jedynie przy listach generycznych, można ją wykorzsytywać np. przy macierzach:
const
arrNumbers: array [0 .. 4] of UInt32 = (7, 12, 56, 2, 30);
var
intNumber: UInt32;
begin
for intNumber in arrNumbers do
WriteLn(intNumber);
przy zbiorach:
type
TEnum = (enumFirst, enumSecond, enumThird, enumFourth);
TEnums = set of TEnum;
const
EnumsSet: TEnums = [enumFirst, enumSecond, enumFourth];
var
enumItem: TEnum;
begin
for enumItem in EnumsSet do
WriteLn(enumItem);
czy nawet w klasach niegenerycznych (przynajmniej pod Lazarusem):
var
slItems: TStrings;
strItem: AnsiString;
begin
slItems := TStringList.Create();
try
slItems.Add('first');
slItems.Add('second');
slItems.Add('third');
for strItem in slItems do
WriteLn(strItem);
finally
slItems.Free();
end;
Tak że pętla for in
ma wiele zastosowań, nie tylko związanych z generykami.