レコードの可変部分

ども、Norimakiです。

私、レコード型というのをよく使いますが、
最近、レコードの可変部分なるものを知りました。

レコードの可変部分って何なんでしょう?

通常レコードというと、

type TNYRecordXxxx=record
 Name:string;
 Addr:string;
 MailAddr:string;
 Tel:string;
 Age:integer;
end;

のような形で使用します。

この方法が普通だと思うんですが、
レコードの可変部分というものを利用することで、
フィールドにバリエーションを持たせることができるらしいです。

こんな感じ。

type TNYRecordXxxx=record
 Name:string;
 Addr:string;
 MailAddr:string;
 Tel:string;
 Age:integer;

case Salaried: Boolean of
  True: (AnnualSalary: Currency);
  False: (HourlyWage: Currency);
end;

この例では、1つのレコード型で2種類のデータを保存できるという事らしいです。

この場合はヘルプによると、AnnualSalaryとHourlyWageは
メモリの同じ領域を共有するとのことです。

AnnualSalaryとHourlyWageを同時に使用することがないとわかっている場合は、
メモリを共有してメモリの節約をしようということなんでしょうか?

上手く説明出来ませんが結構役に立つ機能だと思います。
とりあえず使い方だけは覚えておこうかなと。

ではでは。
Norimakiでした。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする