StartprogrammingusingObjectPascal:Records
Record
배열은 같은 형의 많은 변수들을 지닐 수 있지만, record 는 제각기 다른 형의 변수를 지닐 수 있으며, 이 변수들을 'Field' 라고 부릅니다.
이 변수/필드의 모임은 단일 Unit 이나 변수처럼 취급합니다. 예를 들어 자동차 정보와 같은 것들을 하나의 객체에 주려 할 때 레코드를 사용할 수 있습니다.
- 자동차 형식: 문자열 변수
- 엔진 크기: 실수
- 생산 연도: 정수 값
다음 예제에서는 제각각 다른 이 형식들을 자동차를 나타내는 레코드에 모을 수 있습니다.
program Cars;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{ you can add units after this };
type
TCar = record
ModelName: string;
Engine: Single;
ModelYear: Integer;
end;
var
Car: Tcar;
begin
Write('Input car Model Name: ');
Readln(Car.ModelName);
Write('Input car Engine size: ');
Readln(Car.Engine);
Write('Input car Model year: ');
Readln(Car.ModelYear);
Writeln;
Writeln('Car information: ');
Writeln('Model Name : ', Car.ModelName);
Writeln('Engine size : ', Car.Engine);
Writeln('Model Year : ', Car.ModelYear);
Write('Press enter key to close..');
Readln;
end.
이 예제에서는 ‘type’ 키워드를 사용하여 새 형식(record)을 정의했습니다.
type
TCar = record
ModelName: string;
Engine: Single;
ModelYear: Integer;
end;
변수가 아니라 형식이라는 것을 표시하기 위해 Car에 문자(T)를 더했습니다. 변수 이름은 Car, Hour, UserName처럼 될 수 있지만, 형식 이름은 Tcar, Thour, TUserName과 같이 되어야 합니다. 이것은 파스칼 언어의 표준입니다.
이 새로운 형을 사용하려면, 이 형의 변수를 예제와 같이 선언할 것입니다.
var
Car: TCar;
이 변수/필드들 중 하나에 값을 저장하려면 다음과 같이 접근합니다.
Car.ModelName;
레코드는 이 책의 임의 접근 파일 에서 사용할 것입니다.