델피치 안의 교체.
5939 단어 Delphi
delphi 2005 이후에 포...in .. 스트리밍, Set, array, record, Interface,class를 지원합니다.코드의 for 순환을 더욱 간결하게 할 수 있습니다.
var
S: string;
i: integer;
begin
for i := 0 to MyStrings.Count-1 do
begin
S := MyStrings[i];
writeln(S);
end;
end;
var
S: string;
begin
for S in MyStrings do
writeln(S);
end;
, :
1. class , interface record
2. class ,interface record GetEnumerator ,
3. class , interface record 。
4. MoveNext(): boolean; Current: 。
5.MoveNext False, True
6. -1, moveNext 。
:
type
{ }
TRecordEnumerator = record
private
FArray: TBytes;
FIndex: Integer;
function GetCurrent: Byte;
public
function MoveNext(): Boolean;
property Current: Byte read GetCurrent;
end;
{ }
TRecordCollection = record
private
FArray: TBytes;
public
function GetEnumerator(): TRecordEnumerator;
end;
{ TRecordCollection }
function TRecordCollection.GetEnumerator: TRecordEnumerator;
begin
Result.FArray := FArray;
Result.FIndex := -1;
end;
{ TRecordEnumerator }
function TRecordEnumerator.GetCurrent: Byte;
begin
Result := FArray[FIndex];
end;
function TRecordEnumerator.MoveNext: Boolean;
begin
Inc(FIndex);
if FIndex >= Length(FArray) then
Exit(false);
Exit(true);
end;
var
LColl: TRecordCollection;
B: Byte;
begin
LColl.FArray := TBytes.Create(1, 2, 3, 4, 5, 6);
for B in LColl do
WriteLn(B);
ReadLn;
end.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Delphi] TStringBuilder그리고 꼭 사용해야만 할까? 그림처럼 Heap 영역에 "Hello" 공간을 생성하고 포인팅을 한다. "Hello World" 공간을 새로 생성한 후 포인팅을 하게 된다. 결국 "Hello" 라는 String 객체가 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.