Инструменты пользователя

Инструменты сайта


bb:redbook:208

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия Следующая версия справа и слева
bb:redbook:208 [2018/11/30 01:13]
127.0.0.1 внешнее изменение
bb:redbook:208 [2019/07/23 11:35]
caufman [2. Свойства объекта]
Строка 12: Строка 12:
 Итак, свойства объекта, в первом приближении — это поля записи. Поля могут быть как базовых типов (INTEGER, REAL и т. д.), так и пользовательские типы(например, tString, tPerson и т. д.). Пример того, как это может выглядеть представлен ниже: Итак, свойства объекта, в первом приближении — это поля записи. Поля могут быть как базовых типов (INTEGER, REAL и т. д.), так и пользовательские типы(например, tString, tPerson и т. д.). Пример того, как это может выглядеть представлен ниже:
   
-    + TYPE 
 +     tPerson = RECORD (* объект человек *) 
 +         name: ARRAY 128 OF CHAR; (* имя *) 
 +         family: ARRAY 128 OF CHAR; (* фамилия *) 
 +         age: SHORTINT; (* возраст *) 
 +         id: INTEGER; (* уникальный идентификатор *) 
 +         subset: INTEGER; (* счёт в банке *) 
 +         count: REAL (* сколько денег на счёте *) 
 +     END; 
 В пользовательском типе tPerson использованы массив литер, короткое целое и два целых. В комментариях, на всякий случай приводятся описания полей. Часто бывает удобней, чем смотреть в документацию (хотя, в ББ — это как раз не проблема). В пользовательском типе tPerson использованы массив литер, короткое целое и два целых. В комментариях, на всякий случай приводятся описания полей. Часто бывает удобней, чем смотреть в документацию (хотя, в ББ — это как раз не проблема).
  
Строка 23: Строка 32:
  
 Внутри модуля в КП, любая струтктура доступна, как на чтение, так и на запись. Давайте попробуем для начала осторожно разрешить отдельные поля на чтение для внешнего модуля. Например, идентификатор пользователя банковской системы должен быть известен в любом случае. Также при выходе замуж женщины с удовольствием меняют фамилии, а приёмные дети также меняют и отчество. В редких случаях, люди даже могут поменять имя. Код разрещающий чтение части данных представлен ниже: Внутри модуля в КП, любая струтктура доступна, как на чтение, так и на запись. Давайте попробуем для начала осторожно разрешить отдельные поля на чтение для внешнего модуля. Например, идентификатор пользователя банковской системы должен быть известен в любом случае. Также при выходе замуж женщины с удовольствием меняют фамилии, а приёмные дети также меняют и отчество. В редких случаях, люди даже могут поменять имя. Код разрещающий чтение части данных представлен ниже:
- +  TYPE 
 +      tPerson* = RECORD (* объект человек *) 
 +          name-: ARRAY 128 OF CHAR; (* имя *) 
 +          family-: ARRAY 128 OF CHAR; (* фамилия *) 
 +          age: SHORTINT; (* возраст *) 
 +          id-: INTEGER; (* уникальный идентификатор *) 
 +          subset-: INTEGER; (* счёт в банке *) 
 +          count: REAL (* сколько денег на счёте *) 
 +      END;
   
 В этом коде, внешний модуль уже может узнать, а есть ли вообще такой клиент у банка, а также номер его счёта (а как ещё деньги можно зачислить?). Как видно из кода, появились дополнительные символы у полей ("-"). Символ "*" означает, что объект при компиляции будет экспортирован (ссылка на объект будет доступна для внешних модулей). Символ "-" означает, что ссылка на объект будет доступна внешним модулям, значение объекта можно считать, но нельзя изменить. Вот так просто. В этом коде, внешний модуль уже может узнать, а есть ли вообще такой клиент у банка, а также номер его счёта (а как ещё деньги можно зачислить?). Как видно из кода, появились дополнительные символы у полей ("-"). Символ "*" означает, что объект при компиляции будет экспортирован (ссылка на объект будет доступна для внешних модулей). Символ "-" означает, что ссылка на объект будет доступна внешним модулям, значение объекта можно считать, но нельзя изменить. Вот так просто.
bb/redbook/208.txt · Последнее изменение: 2020/10/29 07:08 (внешнее изменение)