Record/ru

From Lazarus wiki
Jump to navigationJump to search

Deutsch (de) English (en) español (es) suomi (fi) français (fr) magyar (hu) polski (pl) português (pt) русский (ru)

Структурный тип данных в Pascal .

В то время как простые структуры данных, такие как массивы или множества состоят из элементов одного типа, запись (record) может состоять из нескольких элементов различных типов. Каждая отдельная часть записи называется полем.

Примеры записей:

type
  ExampleRecord = record
    Values: array[1..200] of Real;
    NumValues: Integer; 
    Average: Real;
  end;

  Member = record
    Firstname, Surname: string;
    Address: array[1..3] of string;
    Phone: Integer;
    Birthdate: TDateTime;
    PaidCurrentSubscription: Boolean;
  end;

Запись обрабатывается программой как одно целое, и записи могут быть скопированы таким образом:

var 
  a, b: Member;
begin
  { Заполнение полей записи a }
  ...
  ...
  b := a;
end;

Доступ к полям записи осуществляется через точку после имени переменной. Например:

  a.firstname := 'George';
  a.surname := 'Petersen';
  a.phone := 789534;
  a.PaidCurrentSubscription := True;

C использованием ключевого слова with, к полям записи можно обращаться без указания переменной каждый раз с названием поля.

  with a do
  begin
    firstname := 'George';
    surname := 'Petersen';
    phone := 789534;
    PaidCurrentSubscription := True;
  end;